第四章 令人震驚的事實:數組和指針並不相同
許多C語言書籍對數組與指針何時相同、何時不同含糊其辭,對於這個應該重點闡述的話題只是一帶而過;
聲明相當於普通聲明:它所說明的並非自身,而是描述其他地方的創建的對象;
定義相當於特殊的聲明:它為對象分配內存;
x = y;
在這個上下文環境裡,符號x的含義是x所代表的地址,符號y的含義是y所代表的地址的內容;
數組名時隔左值但不是可走該的左值;
[cpp]
#include<stdio.h>
int main()
{
char * p = "012345";
char a[19] = "01234";
//float * pi = 3.14;
printf("%c", p[1]);
//p[1] = ch;
printf("%c", a[1]);
a[1] = 'a';
printf("%c", a[1]);
return 0;
};
以上代碼驗證:1 只有字符串常量可以在定義事初始化;2 用char * 的字符串常量被定義為只讀;3 用char a[] 定義的字符串常量可以修改;