关于内存分配问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 00:14:43
#include<stdio.h>
void main()
{
char a[]="jancerzhang";
char *p;
p="jancerzhang";
printf("%s\n",a);
printf("%s\n",p);
}
我知道char a[]="jancerzhang";计算机分配了12个字节的内存空间
而p="jancerzhang"只赋予指针变量p字符串的首地址 也就分配了一个字节空间 那么jancerzhang存到哪里了 这样的话指针占的内存比数组小得多了
谁解释下吗

p="jancerzhang";
指针变量p保存了字符串的首地址没错,具体分配了多少字节取决于编译器,未必是1个字节(微机上的话基本上不可能只占1个字节)

虽然指针变量占的空间不多,但是字符串占用的空间一点也没减少,jancerzhang存到哪里取决于编译器,以及运行时环境的分配,

专业问题啊,汗,我看不懂