當前位置:成語大全網 - 書法字典 - c語言中字符串的幾種定義方法及說明。

c語言中字符串的幾種定義方法及說明。

C中定義了幾種形式的字符串:字符串常量、字符數組和字符指針。

1.串常數

也就是說,壹對雙括號中的任何字符。編譯器自動提供的雙引號字符和結束標誌\0字符用作

字符串存儲在內存中。如:printf(“% s”、“hello”);//“妳好”

如果字符串文本中間沒有空格或空格中有空格字符,ANSI C將把它們連接起來。示例:

char問候語【50】=“妳好”和“妳好嗎”;

相當於:

char問候語【50】=“妳好,妳好嗎”;

字符串常量屬於靜態存儲類。靜態存儲意味著如果在函數中使用字符串常量,即使該函數被多次調用,

該字符串在程序的整個運行過程中只存儲壹次。整個引號的內容充當指向字符串存儲位置的指針。這與

使用數組名稱作為指向數組存儲位置的指針是類似的。

2.字符串數組及其初始化

初始化示例:

char m【40】=“妳好,世界“;//定義字符串數組時,必須指定數組大小(整數常量)。指定大小時,請確保數組大小大於預定值,因為編譯器會自動添加“\0”。

//額外的元素將被初始化為“\0”

char m = {‘h‘,‘e‘,‘l‘,‘\ 0‘};//註意符號末尾的空字符。如果沒有它,妳只會得到壹個字符數組而不是壹個字符串。

3.使用字符指針定義字符串。

char *m =“妳好,世界“;//自動添加“\0”

註意:此時字符串指針m指向字符串常量,所以不能用*(m+1)=‘o‘修改此常量,因為如果將此字符串常量放在常量區域中則無法修改。

4.數組和指針

數組形式和指針形式有什麽區別?

數組形式:char m【40】=“hello,world“;

指針形式:char * m =“hello,world“;

數組形式:

編譯器將把數組& ampm視為數組& amp;的第壹個元素的地址。m【0】的同義詞,其中m是地址常數。可以使用m+1來標識數組中的下壹個元素,但不能使用++m .增量運算符只能用在變量之前,不能用在常量之前。

m【40】在計算機內存中被分配了壹個包含40個元素的數組(其中每個元素對應壹個字符,另壹個元素對應結尾的空字符“\0”)。每個元素都被初始化為相應的字符。

通常,引用的字符串存儲在可執行文件的數據段中;當程序加載到內存中時,字符串也被加載到內存中,引用的字符串被復制到數組中。

指針形式:

指針形式(*m)也在靜態存儲區域為字符串保留空間。此外,壹旦程序開始執行,應該為指針變量m保留另壹個存儲位置,以便字符串的地址可以存儲在該指針變量中。

m指向字符串的第壹個字符,++m可用於指向第二個字符。指針m是壹個變量。