C語言問題

時間 2022-05-15 15:40:03

1樓:

這個字串定義時是6個字元(string),加上字串結束符,就是7個字元,所以 sizeof (x) 的值為 7,然後到了 x[0] = 0; 這條語句把字串的第0個字元's',賦值為了 0。

然後 strlen (x) 發現字串的第0個字元就是結束符(剛才賦值的那個0就相當於結束符),於是strlen 就返回了0,表示這個字串的長度為0。

其它的兩個賦值語句:x[1] = '\0'; x[2] = '0'; 它們是打醬油的,完全沒有作用。

2樓:匿名使用者

用字串字面量對字元陣列進行初始化時,編譯器會自動在最後加上『\0』,因此字元陣列x的大小為7,故sizeof(x)=7。

而strlen()只會計算'\0'之前的字元數(不包括'\0'),x[0]=0,就是'\0',因此strlen(x)=0。

3樓:匿名使用者

執行x[0]=0;

後x的實際內容為;

因此strlen函式返回0;

sizeof返回7

4樓:匿名使用者

竟然用全形的雙引號和單引號

c語言問題,C語言問題。

考驕 用指標將兩個字串連結接起來,前一個while迴圈,確定s1字串走完,第二個while開始將s1的逐個字元複製給s1走完,也就是末尾,這樣就可以把字串都匯入到s1中 最後一個空寫的應該寫return s1 長魚修韋 很久沒碰這東西了。我來解釋下 第一個while的迴圈是為了讓指標指向第一個字串的...

C語言問題,c語言問題?

自我程式設計 列印輸出乙個ok。因為前面迴圈for語句有分號結束。所以後面的printf語句不在迴圈內,不受迴圈語句影響。 理佑平鄲胭 結果是22 7 7 8 22 你可以將 i i i i是先 1再計算,還有這裡的運算順序是從左到右,所以應該是7 7 i 14 8 22 前兩個相加時,i先加1,加...

c語言問題,C語言問題?

這個問題說難不難,但理解可能有點玄乎而已,但是打個比方來理解就太容易掌握啦!就是說scanf的認定讀取,比如你單純的scanf c ch 那麼實際上已經認定了第乙個字元出現就把它賦予給ch,如果是你的scanf c 前面多了乙個空格,所以就認定了出現第乙個空格後的字元賦予給ch,如果寫成這樣 sca...