c語言初識指針之字符串小寫判斷 c語言定義字符串類型的關鍵字?
C語言中沒有特殊的字符串類型。通常放入一個指針或者一個字符數(shù)組,比如。const char* ch1.1 C語言沒有原生字符串類型。java、C#等很多高級語言都有字符串類型,有一個字符串來表示字符串
C語言中沒有特殊的字符串類型。
通常放入一個指針或者一個字符數(shù)組,比如。
const char* ch
1.1 C語言沒有原生字符串類型。
java、C#等很多高級語言都有字符串類型,有一個字符串來表示字符串。用法和int類似。您可以使用字符串s1 #34linux#34定義字符串類型的變量。
2)C語言中沒有字符串類型,C語言中的字符串是通過字符指針間接實現(xiàn)的。
1.2 C語言使用指針管理字符串。
C語言中定義字符串的方法:char *p #34linux#34此時P被稱為字符串,但實際上P只是一個字符指針(本質上是一個指針變量,只有P指向一個字符串的起始地址)。
1.3 C語言中字符串的本質:內(nèi)存的一段,指針指向頭部的地址,尾部固定。
1)字符串就是一串字符。現(xiàn)實中反映的字符是字符、符號、數(shù)字等使用的字符,編程中反映的字符是字符類型的變量。在C語言中,ASCII編碼用于編程字符。編碼后,一個字符可以用一個char變量來表示。字符串是多個字符的組合。
1.C語言中表示字符串的有兩種:字符指針和字符數(shù)組。
2.字符指針代表一個字符串。
從編譯器 ■觀點:
比如char *p #34linux#34 p是字符指針,#34linux#34是字符串本身。當編譯器遇到這種字符串表示時,它會將指針與字符串本身分開。字符指針p是一個變量并把它放在堆棧上,而字符串本身#34linux#34存儲在代碼段中,它的第一個地址賦給p。
從記憶的角度來看:
比如char *p #34linux#34會先在堆棧上為字符指針P打開一個4字節(jié)的空間,而#34linux#34字符串本身會在代碼段中為其打開一個6字節(jié)的存儲空間,并將存儲空間的第一個地址賦給P。
3.一個字符數(shù)組代表一個字符串
從編譯器 ■觀點:
比如char a[] #34linux#34 a是一個字符數(shù)組,編譯器會把它放到堆棧上,而#34linux#34字符串本身只存在于編譯器中,也就是編譯器只是用它來初始化字符數(shù)組A,然后丟棄它。
從記憶的角度來看:
例如,char a[] #34linux#34定義了一個字符數(shù)組A,它在堆棧上創(chuàng)建了一個6字節(jié)的存儲空間,而#34linux因為x#34字符串本身只存在于編譯器中,所以不需要為它開辟存儲空間。
4.兩種表示字符串的區(qū)別
字符數(shù)組本身就是一個數(shù)組,數(shù)組本身有自己的內(nèi)存空間,可以用來存放東西;字符指針是一個指針,它總是只占用4個字節(jié),而這4個字節(jié)可以 t被用來存儲有效數(shù)據(jù),所以我們只能把有效數(shù)據(jù)存儲在別的地方,然后把第一個地址存儲在p中。