程序:
#include<stdio.h>
int main(void)
{
char str[]="abc";
char str1='a';
"efg";
printf("%p/n",str);
printf("%c/n",*str);
printf("%c/n",*(str+1));
printf("%c/n",*(str+2));
printf("%c/n",*(str+3));
printf("%p/n","abc");
printf("%c/n",*("abc"+1));
printf("%c/n",*("abc"+2));
printf("%c/n",*("abc"+3));
printf("%p/n",&str1);
while(1);
}
结果:0022FF44,a,b,c, ,00403000,a,c 0022FF43
对于char str[]="abc";
1.从栈里给str[]里分配空间,传一个首地址。
2.从静态存储区给“abc”分配四个字节的空间。
3,然后一一把“abc”赋值str[];
这是个比较特殊的机制。
问题:
系统给进程分配的常量首地址是多少?大小是多少?
系统给进程分配的栈的所地址是多少?大小是多少?