c简单问题,大家来拿分啊

来源:百度知道 编辑:UC知道 时间:2024/06/02 16:22:42
char *p,s[100];
编译程序为字符数组分配100个字节的内存空间,这个我知道
问:
1.为数组名分配空间吗?
2.为指针变量分配4个字节的内存空间,char变量占一个字节的空间,怎么说分配4个字节的空间?不懂
我大白菜,谢谢!
详细一点,俺不懂

1
没有为数组名分配空间这种说法
这是为数组分配空间
数组名只是一个符号,不会为名字分配空间,名字被存到符号表里,那里记录着名字(符号)的信息。
在这里符号表就记录着s是一个char型数组,有100个元素,内存开始地址等..

2
char *p;
这里只是定义了一个指针,不管他是什么类型的指针,他都是占四个字节
char c;
这个c才是占一个字节;

1: 为对象分配存储空间
2: 因为物理地址是32位的, 所以占4个字节