所謂字串本質上就是以'\0作為'結尾的特殊字元陣列;
由於字串本質上其實就是以'\0作為'結尾的特殊字元陣列,所以定義字串時,必須保證字串儲存的最後乙個元素為'\0'。
當我們沒有給定字串具體長度時,我們通過這種方式:char 字串名稱 = ; 來定義字串時,就需要手
動的在字串末尾加上'\0',不然的話,它就僅僅是乙個字元陣列,而不是我們所需要的字串。當我們給定字串具體長度時,
也就是通過這種方式:char 字串名稱[字串長度] = ; 來定義字串時,就需要使字串長度等於字串實際
長度+1,不然的話,它也僅僅是乙個字元陣列,而不是我們所需要的字串。具體例項見定義字串的具體格式。
注意點:如果字串所含元素中我們沒有加上'\0',那麼字串長度應該就為字串實際長度+1;
例如 :char name[6] = ;
注意點:通過這種方式來定義字串,則需要在{}中寫上'\0';
例如:char name = ;
注意點:通過這種方式來定義字串的底層原理其實就是將"tomhe",轉換為了;
例如:char name = "tomhe"; <==> char name =;
具體**如下:
C語言中字串的兩種定義方式詳解
目錄 前兩種是正確的定義方式,第一種之所以沒有指定字元陣列長度的原因是編譯器能夠自己推斷出其長度,無需程式設計師自己設定,這也是我們比較推薦的一種定義方式,但注意記憶體長度編譯器一經判定就無法再次更改,接下來我們分析一下第三種編譯器為什麼會出現亂碼。相信大家都知道,字串是以 0 字元為結束標誌的,這...
c語言中字串的定義與輸出
c語言中沒有專門的字串變數,如果要將乙個字串存放在變數中,必須使用字元陣列,即用乙個字元型陣列來存放乙個字串,陣列中每乙個元素存放乙個字元。定義 char c 10 字元型與整型互相通用,因此 int c 10 也可以定義字元陣列。但由於兩種型別分配位元組不同,用整型來定義會浪費空間,另外這樣定義實...
C語言中的字串
從概念上講,c語言中沒有字串型別 在c語言中使用字元陣列來模擬字串 c語言中的字串是以 0 結束的字元陣列 c語言中的字串可以分配於棧空間,堆空間或者唯讀儲存區 char s1 沒有 0 所以s1只不過是個單純的字元陣列 char s2 也是乙個字元陣列,但是最後乙個元素是 0 因此s2就成了c語言...