c語言中,這道題的輸出結果為什麼是70呢

時間 2021-10-17 05:14:05

1樓:匿名使用者

x = "string" <==> x = ;

所以sizeof (x) == 7

因為strlen 以判斷到 '\0'(也就是0)作為字串結尾標識,所以x[0]=0,導致strlen在判斷x[0]時就認為到字串末尾了,因此返回0

%d%d 列印出來就是 70

2樓:阿爾邁凡

sizeof是求變數戰勝記憶體大小的

char x="string"

記憶體中是

's' 't' 'r' 'i' 'n' 'g' 0所以大小為7

而strlen是求以0結尾的字串長度的

x[0]=0所以該字串的長度就是0了

所以輸出7 0

3樓:匿名使用者

char x="string" ; //字串string+結束符\0共7個字元,儲存到陣列x中,所以x的空間大小為7,即:sizeof(x)=7

x[0]=0; //這句導致strlen(x)結果為0,\0是字串結束符,數值上看就是0,strlen(x)從x地址開始統計,遇\0結束統計,所以,長度結果為0

4樓:劉子彈天下無敵

7是sizeof(x)的值,x中放了七個char型資料每個大小為1

0是strlen(x)的值,strlen函式是求字串的有效長度,簡單來說就是找\0或0

c語言的問題,這道題的輸出結果是多少,怎麼算的?

5樓:

argc=4

ar**[0]= proc

ar**[1]= abcd

ar**[2]= efgh

ar**[3]= ijkl

迴圈變數是argc、先減1後用。

即:4-1=3>0輸出ijkl

3-1=2大於0輸出efgh

2-1=1大於0輸出abcd

1-1=0不大於0退出迴圈

最終輸出結果:

ijklefghabcd

6樓:

ijklefghabcd——按題目的要求操作後,因為命令列有prog abcd efgh ijkl共4個字串(這是規定,命令中不得有空格),所以argc==4;而ar**中ar**[0]=="prog",ar**[1]="abcd",ar**[2]="efgh",ar**[3]="ijkl"。while(--argc) printf("%s",ar**[argc]);迴圈輸出ar**[3]、ar**[2]、ar**[1](當argc==0時迴圈終止了),且%s後沒有空格,所以得到上述結果。

c語言中,這道題要怎麼填!

7樓:叔伯老表

a[0],a[3]

p[i]取的是陣列a中元素所在的地址,可以寫成。p[i]=a+2*i。a是陣列a[6]的首地址。

加上*是指向這個地址的資料。所以*p[0] = *(a+2*0)=*a=a[0],*(p[1]+1)=*(a+2*1+1)=*(a+3)=a[3]。

一道c語言題,為什麼輸出的結果為負數?

在這個c語言程式中藍色方框中的執行語句是什麼意思?這道題的輸出結果是怎麼求出來的?

8樓:匿名使用者

把每行下標為1的元素和s相加

也就是s=s+aa[0][1]+aa[1][1]+aa[2][1]+aa[3][1]

代入後就是1+2+6+7+3==19

c語言中float輸出的結果從左往右有效數字是6位,但是我編寫這個小程式後怎麼就只有3位有效?望高手解答

想要搞清楚這個問題,你需要了解float型別在記憶體中的儲存結構 符號位 指數 尾數 78.88在記憶體中的結構為 01000010 10011101 11000010 10001111 第一位為符號位,0 後面八位為指數位10000101 最後23位為尾數0011101 11000010 1000...

C語言中如何輸出圖形,C語言如何輸出圖中的圖形?

你可以採用迴圈的方法來做,需要輸出a的位置的時候就輸出a,其他地方就輸出空格,就行了 include void main int i,j,n printf 請輸入要輸出幾行 n scanf d n for i 0 i n i for j 0 jprintf for int k 0 k 2 i 1 k...

C語言中如何刪除已經輸出的字元,C語言中如何刪除已經輸出的一個字元?

會飛的小兔子 文字模式下指定位置輸出 用 覆蓋掉 gotoxy 1,1 printf 1230123 gotoxy 7,1 printf 例 include intmain void printf 123 printf b c b 32 注意這裡 return0 擴充套件資料c語言刪除字串前面連續 ...