字串陣列和字串指標的使用和區別

2021-09-23 05:54:04 字數 352 閱讀 3414

//字串陣列

#include #include int main()

這段**能夠正常編譯和鏈結,但在執行時會出現段錯誤(segment fault)或者寫入位置錯誤。

第4行**是正確的,可以更改指標變數本身的指向;第5行**是錯誤的,不能修改字串中的字元。

在程式設計過程中如果只涉及到對字串的讀取,那麼字元陣列和字串常量都能夠滿足要求;如果有寫入(修改)操作,那麼只能使用字元陣列,不能使用字串常量。

最後我們來總結一下,c語言有兩種表示字串的方法,一種是字元陣列,另一種是字串常量,它們在記憶體中的儲存位置不同,使得字元陣列可以讀取和修改,而字串常量只能讀取不能修改。

字串指標和字元陣列

很多剛從c 轉c 的人都不明白,在c 中這樣的 char pchar hello!定義字元指標pchar 指向乙個字元陣列首 元素即h pchar h 問題所在行 到了c 中怎麼就不行了?你翻遍參考書,都會說,pchar 指向的是常量,怎麼能允許改變呢?你又問了,怎麼我在c 中執行的好好的?沒人回答...

字串指標和字串陣列的區別

char p1 a string.和 char p2 another string.寫法的不同 p1指向的這個字串是個常量,不可改變 程式在編譯期間就為 a string.這個字串分配了固定的空間,它被儲存在全域性靜態區中.編譯器只是把指標p1的指向的位址賦為 a string.的首位址,並沒有為指...

字串陣列和字串指標的區別

在最早學c語言的時候,char 與char 是最讓我頭疼的幾個問題之一。字串陣列和字串指標是截然不同的兩個東西,如果不去在意它們之間的不同,而混合使用,可能會帶來很多麻煩。讓我們從這兩個東西建立的過程說起。當我們進行字串陣列的定義時 char str abc 其實我們做了兩件事 1.建立了乙個新的字...