- 相關(guān)推薦
C語(yǔ)言入門知識(shí)之字符串與指針
導(dǎo)語(yǔ):字符串或串(String)是由數(shù)字、字母、下劃線組成的一串字符。它是編程語(yǔ)言中表示文本的數(shù)據(jù)類型。下面是其相關(guān)知識(shí),歡迎閱讀:
1、 字符串的表示形式
在C語(yǔ)言中,我們可以用兩種方式訪問(wèn)字符串
(1) 用字符數(shù)組存放一個(gè)字符串,然后輸出該字符串。
main(){
char string[]="I love China!";
printf("%s ", string);
(2) 用字符指針指向一個(gè)字符串。可以不定義字符數(shù)組,而定義一個(gè)字符指針。用字符指針指向字符串中的字符。
main(){
char *string="I love China!";
printf("%s ", string);
在這里,我們沒(méi)有定義字符數(shù)組,而是在程序中定義了一個(gè)字符指針變量string,用字符串常量"I love China!",對(duì)它進(jìn)行初始化。C語(yǔ)言對(duì)字符串常量是按字符數(shù)組處理的,在內(nèi)存中開(kāi)辟了一個(gè)字符數(shù)組用來(lái)才存放該字符串常量。對(duì)字符指針變量初始化,實(shí)際上是把字符串第1個(gè)元素的地址(即存放字符串的字符數(shù)組的首元素地址)賦給string。有人認(rèn)為string是一個(gè)字符串變量,以為在定義時(shí)把"I love China!"這幾個(gè)字符賦給該字符串變量,這是不對(duì)的!!
實(shí)際上,char *string="I love China!";等價(jià)于:
Char *string;
String = “I love China!”;
可以看到,string被定義為一個(gè)指針變量,指向字符型數(shù)據(jù),請(qǐng)注意它只是指向了一個(gè)字符變量或其他字符類型數(shù)據(jù),不能同時(shí)指向多個(gè)字符數(shù)據(jù),更不是把“I love China!”這些字符存放到string中(指針變量只能存放地址),也不是把字符串賦給*string。只是把“I love China!”的第一個(gè)字符的地址賦給指針變量string。
在輸出時(shí),要用:printf(“%s ”, string);,其中“%s”是輸出字符串時(shí)所用的格式符,在輸出項(xiàng)中給出字符指針變量名,則系統(tǒng)先輸出它所指向的一個(gè)字符數(shù)據(jù),然后自動(dòng)是string加1,使之指向下一個(gè)字符,然后再輸出一個(gè)字符……如此知道遇到字符串結(jié)束標(biāo)志“