char *p=”abcdef”与char s[]=”abcdef”存储在哪里?
<br />p[2]=’w’;printf(p);getchar();return 0;编译通过,运行出错。<br />s[2]=’w’;printf(p);getchar();return 0;正常。<br />任何情况下,对字符串常量是不可以修改的。如”abcdef”。因为字符串常量在静态存储区。<br />char *p=”abcdef”;将p指向了该字符串常量;<br />char s[]=”abcdef”; 在栈上分配了字符串数组,将字符串常量”abcdef”的值拷贝到该数组中,
原创
2010-11-22 00:18:00 ·
600 阅读 ·
0 评论