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!
則會在運行時,出現寫入內存錯誤,即,不可以修改字符串常量的值。