这是我计划的一部分。
我理解s1是如何工作的,但我对s2
感到困惑char* s1="string";
char s2[7]="string";
printf( "\n &s2 is :%p",&s2);
printf("\n\n s2 is :%p",s2);
printf( "\n *s2 is :%c",*s2);
输出
&s2 is :0018FF48 //i.e. s2 is contained in memory address 0013FF48
s2 is :0018FF48 //i.e s2 points to 0013FF48
*s2 is :s //i.e value contained in 0013FF48 is s
这总结如下,我无法弄清楚它的含义:
s2正在扮演什么角色?
答案 0 :(得分:1)
char s2[7]="string";
是一个包含7个字符和初始值的数组
char *s1="string";
在程序二进制文件的某处是字符串常量,在运行时不可更改,并且是一个访问它的指针。你不能释放它。