1樓:匿名使用者
strlen的函bai數原型是
unsigned int strlen(const char * string)
返回的是從傳du入的指標的地址開始,一直zhi
到字串結束dao符'\0'之間的位元組數
而內char s[12]=這種寫法,實際隱含了容一個字串結束符'\0'在最後
即s[12]包含's' 't' 'r' 'i' 'n' 'g' '\0'這7個字元。
當呼叫strlen(s)的時候,傳入的是's'的首地址,一個到字串結束符'\0'共有6個位元組。返回會返回6
最終列印就是6了。
char s[12]={「string」}; 則printf(「%d\n」,strlen(s))
2樓:匿名使用者
strlen是c執行庫
抄中的函式,它返回字串的長度,也就是字元格式。c字串以ascii碼0結束,ascii碼0字元不被strlen計數。所以
strlen(s)=strlen(「string」)=6結論:列印輸出6
3樓:聽不清啊
char s[12]=; 則printf(「%d\n」,strlen(s))則輸出 6
4樓:小醜
strlen 遇空結束, strlen(s) 為 6, sizeof(s) 為 12
設有變數定義語句chara,設有如下變數定義charaa3a,b,c,d,e,f
選a a a 是正確的 b a 16 因為a是被定義為char,所以必須是字元,回而16是字串,不是字元,所以是錯的答 c a 是因為定義char a,不是string a,字串是用 引的,而字元時用 引的,所以是錯的 d a 是錯的,c語言規定不能將單引號 作為字元常量 a a 是正確的 d a ...
設有以下語句 char str 12aaa
strp strp 4 定義的是指標陣列。通過迴圈對陣列的每個元素賦值,分別指向陣列的每一行。strp表示的是一個陣列名,而這個陣列的型別是指標,因此strp指向的是第一個指標變數的地址。取值範圍 char 2 7 2 7 1 signed char 2 7 2 7 1unsigned char 0...
設有以下定義的語句 int a 210,20,30,40,50,60p p a則p 2 1 值為
p 2 1 相當於陣列a 2 1 的值是多少。所以答案就顯而易見了啊 60 以上回答你滿意麼?若有以下定義和語句 int a 10 1,2,3,4,5,6,7,8,9,10 p a 則不能表示a陣列元素的表示式是 a p b 不能表示a陣列元素的表示式是 b a 10 因為陣列a的最大下標只能是9,...