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語言程式執行完結果還是a 3,b 5 不是應該互換嗎?求解答
你傳來的引數是值,在函式裡交換完後源,會bai釋放空間,而du且你並沒有接收函式傳zhi出的資料。include void f int dao i,int j int main void c語言給函式傳遞引數的時候,實際上傳遞的是引數的副本 陣列除外 所以在函式內對引數的修改對原引數沒有影響。f函式...
C語言下面程式的執行結果是
x的值是每次來在執行迴圈體源第乙個語句進行賦值的。bai每個if語句都是du先加加,然zhi後再模2,模3,模7。全部條件滿足dao後,才會輸出x。計算的並非是x的原始值,而是計算的三次加加後的x的值。比如輸出28的時候,i的值是25,那麼此時x的值也是25。首先進行第乙個判斷,因為是前加加,所以對...
為什麼c語言不能通過執行呼叫函式來改變實參指標變數的值
呼叫函式,只能改變指標指向的記憶體空間的內容,不能改變實參指標變數的值。專 我覺得題 屬主對指標變數,還算有一點了解。指標變數,其實也就是乙個變數,但它的值是一塊記憶體的位址。函式呼叫時,你只是把實參指標變數的值,即一塊記憶體的位址,賦 複製 給了形參,然後,你在函式內把形參指標指向別的記憶體空間位...