C語言這個函式執行結果為什麼是0,4,

2021-08-16 05:11:46 字數 1317 閱讀 4721

1樓:匿名使用者

c = (a -= ++a), (a += b, b += 4)最先執行的是++a,a變成1

然後執行的是 a -= a,a變成0

然後執行的是c = a,c變成0(相當於不變)然後執行的是a += b,a變成0(相當於不變)然後執行的是b += 4,b變成4

所以最後結果是a = 0,b = 4,c = 0

2樓:匿名使用者

這是一個逗號表示式,逗號表示式的結果取決於最後一個表示式的結果。

c=(a-=++a),(a+=b,b+=4);

其中(a-=++a)可表示為, 先計算++a, 結果a=1,然後計算a-=1, 就是a=a-1,由於a本身就等於1,所以,a=0;

c=(a-=++a)實際上是c=a, 即c=0;

(a+=b,b+=4)也是一個逗號表示式,先計算a+=b, 即a=a+b, 結果a=0。 再計算b+=4, 即b=b+4, 結果b=4

所以a=0,b=4,c=0

整個句子最後的結果應該為4.

c語言,一個程式。結果是0,4,0,求指教,為什麼不是,0,3,0?

3樓:璇星翼

這個其實是由於你對

bai於程式執行的內部du

機理不是非常zhi的瞭解:

首先程式都是dao從上面開始運專行的,我這就不屬解釋了,t=(++x)&&!(y--<=0);在&&中只要有一個不成立那就是不成立的運算,所以當(++x)為0時,這個時候後面的!(y--<=0)將不會在執行,因為計算機已經得到了結果,因而為:

0,4,0

如果還是不是非常明白你把他們順序改變成: t=!(y--<=0)&&(++x);那麼這時候執行的結果是:0,3,0了。

4樓:匿名使用者

璇星翼| 四級 正解。記住&&和||這個在c語言裡運算的特殊性就好。

c語言,int x=5>1+2&&0||2*4<4,為什麼結果x 的值是一整個函式的值,而y=2,

5樓:空對空導彈

這個是根據運算子的優先順序來決定的,賦值的優先順序比較低,僅僅高於逗號運算子,所以前面不用括號。

c語言自定義函式求1-1/2+1/3-1/4+1/5.......+(-1)的(n-1)次方*1/n 程式執行後輸入一個數得到的都是0 5

6樓:匿名使用者

#include

double yuan(int n)

return s;

}main()

C語言 陣列的執行結果

程式可以去執行一下啊,這樣不就知道答案了,我執行了,標準答案是對的主要是在這個函式 void fun1 int n,int a 3 裡面的這句話 a i j a i j a i i 也就是說每行裡的各個元素都等於該元素除以該行對應的對角線元素比如說第一行,第一個是6,那麼6 6 1,之後的元素都除以...

c語言swith函式,c語言 這個函式怎麼用switch語句來寫?

你用的工具報錯 在每段錯誤資訊後面都寫的很清楚 什麼錯誤 錯在哪 大哥,switch 是這樣寫的,不是 swith 沒看出來那少,是不是輸入法不對啊。你統一用英文輸入法把分號都改一遍試試。呵呵,學c語言得比女人還要小心啊,你用的什麼系統,關鍵字顏色都不一樣的,不清楚嗎 c語言中的switch是什麼意...

C語言程式為什麼最後的輸出結果是這個

getchar接收的是 字元 putchar輸出的也是字元 它們不會接收和輸出整數!第一次c 2 執行case 0 後面的語句直到遇到break 所以輸出是 6 6 顯示就是66。第二次c 4 執行case 2 後面的語句直到遇到break 所以輸出是 8 顯示就是668。第三次c 7 執行defa...