先看乙個題:下面的**正確嗎?
char *string1;
char *string2;
string1=string2;
答案:正確
再看:char string1;
char string2 = "second";
string1=string2;
答案: 不正確。陣列要複製的話,請使用strcpy(); 本例中,strcpy(string1,string2);
為毛,既然陣列名也是指標,但是不能被賦值?陣列名在表示式中表示指向首元素的指標
常量,這個常量執行時才被分配到棧中,既然是常量當然不允許修改,一旦定義就不能再被賦值了。
陣列名和陣列名的取址
關於陣列名和指標的區別 推薦看這兩篇文章 示例 char a 3 輸出10進製位址 輸出 a 為 2686777 a 為 2686777 a是陣列名,編譯器處理時相當於陣列首元素的位址 a是乙個指向陣列的指標,值為陣列的位址,等於陣列首元素的位址 輸出 a 為 1 a 為 1 a 為 2686777...
陣列名和陣列名取位址的區別
以下 會列印出什麼樣的日誌呢?cpp view plain copy include int a 2 int main 本機 linux 結果輸出 a 0x804a014 a 0x804a014 a 1 0x804a018 a 1 0x804a01c 沒錯,上面i 和 ii列印出來的位址是一樣的,i...
陣列名和陣列名取位址的區別
include int main 執行效果 printf d n sizeof a 結果20,有點陶醉.a,既然是指向陣列結構的指標,不應該大小為20.其實,ps 如果是 int a 1,則結果是1245037 即1245036 1 揭密陣列名 陣列名的內涵在於其指代實體是一種資料結構,這種資料結構...