-
為了更好地操作字串,C C++ 宣告字串的最後乙個字元是'\0'(ASCII碼為0),其他字元的ASCII碼大於0,所以在排序、比較、複製、匯出等時會遇到這種情況'\0',這意味著字串已結束。 在系統函式中,例如 strcmp()、strcat()、strlen() 等,它們都以'\0'為標誌的末尾。
對於 char s ="life";,有 4 個字元,分別是有效字元數和字串長度(strlen(s) 的返回值),但在記憶體中,字元 E 後面還有乙個 ASCII 值 0'\0',所以占用空間是 5,比實際字串多乙個字元。
-
首先,房東你要了解乙個概念。 C語言中沒有字串型別,C語言提供了字串常量,這意味著“字串常量”的概念存在於C語言中,C語言是以“nul”位元組結尾的字串。
為了說明這個例子,讓我們假設乙個字串“hello”。
1、他的有效字元數,房東自己數了一下就知道是5個 2,字串長度=位元組數,剛才說是以“nul”位元組結尾的字串,那你就用有效字元數加一。
3. 占用的空間是多少? 你對儲存不太了解,是嗎? 字串像字元陣列一樣儲存,這裡的 s=“hello” 等價於 s="hello",空間占用 5+1 位元組。
嚴重蔑視那些複製貼上的答案。
-
24.char ** 是指向字元指標的指標,或者是字元指標的陣列,malloc 應用於 9 個空格,由於。
指標通常具有與 int 型別相同的位元組數(2 或 4),因此兩個指標的空間是通過 malloc 請求的,換句話說,乙個包含兩個元素的 s 指標陣列。
s 表示第乙個字元指標,因此 b 是正確的,可以指向常量字串。
a 為 false。
c 是錯誤的,**s 是乙個字元。
d 右邊的表示式本質上是錯誤的。
25.Language 也是乙個指標陣列,包含 5 個字元指標,每個指標指向大括號中的字串。
language[1] 和 languaage[3] 分別指向"america"跟"italy"
language[1] 和 language[3] 是這兩個字串的第乙個元素,所以選擇 C
26.選擇 b,language[2] 是乙個字元指標,即位址。
如果您仍有疑問,請隨時溝通。
這似乎是低效的,但數量是最少的。
string str = "1212324"; >>>More