C語言,幫我解釋下這個小程式

2022-04-18 09:02:46 字數 990 閱讀 2225

1樓:匿名使用者

scanf在遇到空格時就結束了,所以你輸入的how are you其實只有how被讀進去了。所以長度就是3了。你之前用memset函式的時候,就把a[3]置成0了,然後你輸入的又只有how被讀入,所以此時a[3]還是0嘛。

2樓:

空格是不是就結束了?

3樓:匿名使用者

因為從鍵盤輸入時,scanf遇到空格就認為輸入結束了,所以輸入後,a中只儲存了how。

初始化的a[3]是空格,空格的ascii碼為32;鍵盤輸入後a[3]是結束符『/0』

4樓:小飛花兒的憂傷

scanf遇空格結束,所以你只接收了how這個字串,可以用gets進行行接收

5樓:

1.用鍵盤輸入時,中間不能有空格否則後邊的都捨去。所以只接收了3個位元組。

2.a[3]你在初始化的時候是0,輸出就是0.

6樓:匿名使用者

char a[20] = "how are you";

printf("%d\n",strlen(a));//輸出字串的長度,為11

printf("%d\n",a[3]);//輸出a[3] 的ascii碼值,為32

memset(a,0,sizeof(a));

scanf("%s",a);//輸入how are you,遇到空格結束,只是輸入how

printf("%d\n",strlen(a));//長度為3

printf("%d",a[3]);a[3]是結束符\0,ascii碼值為0

7樓:匿名使用者

how are you的長度~ 9個字母+2個空格 一共11 是按一個字元來計算

a[3]就是空格~他的ascii 值是32 用%d輸出就是32

輸入輸出裡面是忽略空格字元的~ 也就是0 什麼都沒有~

c語言小程式的問題,c語言程式問題

注意標記符號所作用的程式域!其他的都是一些小問題,自己慢慢除錯這執行,相信你能執行成功的。c語言程式問題 c語言中只有傳遞值的一種方式,即使傳遞的是指標,還是指標的值,因此雖然p加了3,但是與pt無關,如果要修改指標形參,則要使用二重指標 include point char pt main pt ...

求大神解釋一下這個C語言程式怎麼執行的啊啊和為什麼 看不懂啊

for m 2 m 50 m 從2到50列舉數字m 如果沒 break 的話m應該屬等於n,否則m不是質數if m n 如果沒break printf d m 輸出 建議樓來主善用搜尋,但是源為了積分我還是回bai答du一下c語言的執行教程zhi http jingyan.關於 內 dao容解釋 把...

c語言程式怎麼理解,這個C語言程式,怎麼理解??

函式型別為空,所以函式fun對這個程式沒作用。指標變數 s仍指向陣列a的首元素1.1的地址,輸出格式為 5.2f,保留兩位小數,所以輸出1.10 你只要弄明白指標的用法就可以了 建議看看 c與指標 我解釋一下 fun a,b,s 傳入陣列a,b的地址,以及s的地址,此時s指向陣列的第一個值,即是1....