設有定義char s 12string則printfd ,strlen s

2021-04-20 19:03:46 字數 731 閱讀 8659

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,...