1.對於c風格字串,通常有如下幾種賦值方法(字串(雙引號括起來的)都是以』\0』結尾的!!用「」提示,或者在陣列中用『\0』提示)
char p=」abcde」;這裡「abcde」是個常量字串,儲存在常量區。字串的結尾都是帶『\0』的,只是沒有顯示而已,p是個陣列。這裡的意思是把此常量字串值複製乙份儲存在陣列p中,p的最後乙個位置儲存的是『\0』,陣列長度為6。
char p=;這裡就是建立乙個字元陣列,分別儲存字元』a』,』b』,』c』,』d』,』e』,沒有』\0』的存在,陣列長度是5.這裡需要注意的是:strlen函式用來求p的長度結果是錯誤的,strlen函式的引數型別為char*,p可以看為char*,所以不會報錯,但是strlen內部執行時是從char*處開始,直到查詢到『\0』結束,記錄字串長度,而陣列中並沒有儲存』\0』,所以其會繼續向後查詢,這樣就產生了錯誤!!!!!
char* p=」abcde」;這裡不同於以上兩種,「abcde」是乙個常量字串,p是乙個指向此常量的指標,所以這裡通過p操作的就是常量區的字串。由於是常量,所以只能訪問,不能對其進行賦值操作,p[3]=『d』是錯誤的!二維情況定義如下 char* p=;//p是乙個指標陣列,分別指向其中的乙個字串,p是指向指標陣列首的指標,等同於p[0]。
常字串只能讀取不能修改。
C風格字串與C 風格字串
c風格字串 對字串進行操作的 c 函式定義在標頭檔案中 1.字串定義 char result 2.字串的最後乙個字元是null字元 0 可以通過這個字元確定字串的結尾。3.strlen 返回的是字串的大小 因此,分配空間的時候,需要比字串的實際空間大1.e.g.char copystring con...
C風格字串與C 風格字串
c風格字串 對字串進行操作的 c 函式定義在標頭檔案中 1.字串定義 char result 2.字串的最後乙個字元是null字元 0 可以通過這個字元確定字串的結尾。3.strlen 返回的是字串的大小 因此,分配空間的時候,需要比字串的實際空間大1.e.g.char copystring con...
c風格字串與c風格字串陣列
include includeusing namespace std int main 輸出結果 0034ff10 0034ff10 0034ff04 013bdc80 char str abcd 先在文字常量區為 abcd 常量分配5b,接著在棧裡為指標str分配4b,並接收 abcd 字串的首位...