char *p="abcdef";
printf("%c",p[1]);
char q[7]="abcdef";
printf("%c",q[1]);
以上两句虽然打印结构相同,但内部逻辑完全不同。究其原因如下:
上面指针p可以解释为:符号表中p是一个地址,在这个地址中存储了一个数组的首地址。
上面的数组q可以解释为:符号表中q是一个地址,这个地址就是数组的首地址。
char *p="abcdef";
printf("%c",p[1]);
char q[7]="abcdef";
printf("%c",q[1]);
以上两句虽然打印结构相同,但内部逻辑完全不同。究其原因如下:
上面指针p可以解释为:符号表中p是一个地址,在这个地址中存储了一个数组的首地址。
上面的数组q可以解释为:符号表中q是一个地址,这个地址就是数组的首地址。
本文标题:数组与指针的区别
本文链接:https://www.haomeiwen.com/subject/deukbttx.html
网友评论