好噠,讓我們接著上一次的問題開始~~
指標時,無法修改字串內容,因為這個字串放在記憶體的常量區,而記憶體的常量區時唯讀
但是如果用陣列的方式定義,會在儲存於記憶體常量區之後在棧上分配空間、容納字串,
區別在於:用陣列定義的方式會產生副本,而指標的定義只是讓指標指向記憶體常量區的位址,所以,陣列方式才可以修改
所以,建議把指標初始化為字串字面量時,使用const限定符
2.字串陣列
使用乙個下標時,表示乙個字串
使用兩個下標時,代表乙個字元
mytalents陣列是乙個內含5個指標的陣列,共佔40位元組
yourtalents陣列是乙個內含5個陣列的陣列,每個陣列內含40個char型別的值,共占用200位元組
所以二者型別並不相同
字串陣列分配記憶體的使用率較低,即每個元素的大小必須相同,而且必須是能儲存最長字串的大小
但指標指向的字串字面量不能更改
各有利弊,按需使用
3.指標和字串
第二項顯示兩個指標的位址即指標mesg和copy分別儲存的位址
最後一項顯示兩個指標的值即它們的儲存位址,相同就說明它們都指向同乙個位置
所以說明,並沒有拷貝陣列
下面的話,我們就要學習字串函式嘍
字串和字串函式之學習筆記(一)
1.指標和字串 沒錯,指標又出現了。首先區分下 字元和字串 字串是以空字元 0 結尾的char型別陣列 至於該怎麼表示字串呢,請您接著看 用雙括號括起來的內容稱為字串字面量或字串常量,編譯器會在末尾自動加 0 如果要在字串內部用雙引號,要加 字串常量屬於靜態儲存類別即在整個程式的生命期存在 和陣列類...
字串和字串函式
字元輸入輸出 getchar putchar ch getchar putchar ch 字串函式 字串輸入 建立儲存空間 接受字串輸入首先需要建立乙個空間來存放輸入的字串。char name scanf s name 上述的用法可能會導致程式異常終止。使用字串陣列 可以避免上述問題 char na...
字串和字串函式
1.字串字面量 字串常量 用雙引號括起來的內容稱為字串字面量,也叫字串常量。字串常量屬於靜態儲存類別,這說明如果在函式中使用字串常量,該字串只會被儲存一次,在整個程式的生命期內存在,計時函式被呼叫多次。用雙引號括起來的內容被視為指向該字串儲存位置的指標。hello 中的 hello 類似於乙個陣列名...