這時,出現位址相同的情況,說明這裡的「hello world」只是儲存在乙個臨時的地方,兩個指標同時指向了這個「hello world」,這時字串不可寫。什麼叫不可寫?看下面。
用陣列定義字串,字串可寫,這時s3[0]=『b』,結果可以改變就叫做字串可寫。part1裡的字串不能改變,s3[0]='b』語句沒有作用。
這裡用陣列定義字串後,再用指標指向這個字串,和part1相比,位址複雜了許多,說明這個位址不是臨時位址了。
計算字串長度12,hello world+\0,\0也占有字串的一位,但是不會顯示出來。
下面給出指標指向字串的兩種方式:
\0才代表乙個字串的結束,\0才代表乙個字串的結束,\0才代表乙個字串的結束。它是陣列的一部分。
#include
intmain()
;char
* a;
a=b;
printf
("%s\n"
,a);
}//或
#include
intmain()
;是相等的。
當你不需要對字串改變時,臨時用指標定義也可以的:
下面上乙個帶有思考性的問題,下面的指標事實上是直接指向乙個陣列元素『s』的,陣列最後沒有『\0』。當你硬要以字串形式輸出時:
這個結果正確,指標指向了陣列中的字串。
C語言 字串指標(指向字串的指標)
字串一旦被建立就存在於常量池中。以字元陣列形式建立的字串,實際上是從字串常量池中複製了乙個副本,所以修改字元陣列的內容時,只是修改的自己的副本,並不會影響到常量池中的字串。而對字串指標strp操作時會影響到常量池中的字串 char strc string char strp string print...
C語言指向字串的指標絕好
一 c語言字串的表示形式 c語言沒有單獨的字串物件,它是通過陣列的形式來表示字串的 include include int main void 上述字串 hello world 共11個字元,加上結束字元 0 在記憶體中共12個字元。二 通過字元指標引用字串 include include int ...
C語言字串及指向字元陣列的指標
通常編譯器在 肉眼所能看見的 字元陣列末尾還會加乙個 0 作為結束符 所以真正的字元長度是 肉眼所見長度 1 char str 5 hello 如上 是會編譯錯誤的 一.指標和一維字元陣列 include include include using namespace std intmain 之前的...