字符數組兩種定義方式的區別

1. char text[] = "Hello world.";
2. char *text  = "Hello world.";

第一行定義了一個字符型數組,並初始化爲字符串"Hello world."text是指向數組的首地址,數組中的元素可以修改。

第二行定義了一個指向char類型的指針text,並將字符串常量“Hello world.”的首地址賦值給text,不能通過text修改字符串常量。

即,對於第一行

text[5] = '\0';  // right!

修改操作是正確的,

對於第二行

*(text+5) = '\0'; // wrong!

則會在運行時,出現寫入內存錯誤,即,不可以修改字符串常量的值。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章