若int a 4則執行語句a aa 4後變數a的值是什麼,答案是 8,a ,a 是什麼,求詳細解釋

2023-01-23 23:35:32 字數 5016 閱讀 5086

1樓:匿名使用者

這是一個複合的結構 =是一個賦值運算子 具有自右向左性 所以應該從右往左看 先舉個例 a+=1的意思是 a=a+1;所以a-=a+4就是a=a-(a+4),這個運算完之後a=-4;然後a+=a就是a=a+a,就是a=-4+(-4)=8;希望能幫到你啊

2樓:鄭慶佳

這是關於運算子優先的,『+=』和『-=』比『+』(加)低階,『+=』和『-=』同級,運算順序為從左到右。因此a+=a- =a+4先做a+4,再做a-=a+4即a-=4+4,a=a-8;a就為-4了,再做a+=-4;a就為-8了。至於那個a+4和a-我實在不知道是什麼,c++裡面好像沒有這樣子的

3樓:魂魔尊

+=和-=是連起來的完整符號

a+=b 就表示a=a+b,a-=b 就表示a=a-b因此a+=a-=a+4,根據按右向左的運算順序,可以先算出a-=a+4,即a=a-(a+4)=-4,

再算a+=(a-=a+4),即a+=-4,即a=a+(-4)=-4-4=-8

4樓:吻使

a-=a+4 , 其實就是a=a-(a+4), 所以執行完這個語句後a=-4。然後執行a+=-4 , 其實就是a=a+(-4)。所以a=-4-4=-8。

a+=b相當於a=a+b。

5樓:千里之外

對於賦值運算,先是計算「=」號右邊的,a+4,計算出的結果為8,在計算a-=8,相當於a=a-8,計算的結果為a=-4,最後計算a+=-4,相當於a=a-4,結果為-8.

c語言 設有語句int a=4;則執行了語句a+=a-=a*a後,變數a的值是多少?

6樓:文化廚子

答案:抄-24

1、a = 4,先算a * a,表示式的值為襲16。

2、+和-同一優先順序,因為是複合賦值運算結合性從右向左進行,所以此時算

a -= 16 (a *a 表示式的值是16)相當於a = a - 16;

此時a=-12

3、最後算:

a+ = -12(a-=a*a表示式的值是-12)。

相當於a = a + (-12);

因為a = -12,所以最後的值是-24。

7樓:匿名使用者

又來討論這類沒有意義的語句.告訴你,這樣地寫語句在標準c中是沒有定義的.

雖然在版編譯器能得出結果,但是由權於標準c沒有明確定義,那麼編譯器可根據自己來作出一個規則.所以不同編譯器會得出不同的結果.

請你看我回答別人的一個問題就知道了.

8樓:

等於號是從右向左計算的……

不過,誰這麼蛋疼,用這種表示式?

若有定義:int a; 執行賦值語句a+=a*=a%=a-=4;後,變數a的值是

9樓:匿名使用者

第一步:執行a-=4(a不能為4,不然a的值會變為0,a%a會程式錯誤);

第二步:執行a%=a(此時a的值為上個a-4的差,不過不影響),餘數為0,並把0賦給a,a的

值為0;

第三步:a*=a,a的值還是0;

第四步:a+=a,a的值依舊為0。

只要a的初值不為4,結果就是0。.

10樓:陳宗權

從右向左計算。

a-=4 ==> a=?(是幾無所謂,只要不是0),運算結果是a,用它繼續

a%=a ==> a=0(如果上一步a已經為0這一步會導致異常),運算結果是a,用它繼續

a*=a

a+=a

後兩個運算之後a依然是0.

我估計你把題目寫錯了,「%」是否應該是「/」啊?如果是這樣,第二步之後a就是1,最後a是2.

11樓:匿名使用者

不用算了,肯定是0;

a+=a*=a%=a-=4;的等效語句為

a-=4;

a%=a;//這一步就決定了必然是0,不管a是多少,自己取模,肯定為0;

a*=a;

a+=a;

c語言中設int a=4,則執行完語句a+=a-=2後的值是?

12樓:娜_些

1全部4根據運算子優先順序及賦值語句的順序先執行 a-=2 即a=2, 再執行a+=2

結果 為4

如果int i,a;執行語句i=(a=2*4,a*5),a+6;後,變數的值是?怎麼理解的?

13樓:匿名使用者

i=(a=2*4,a*5),a+6;

先執行2*4=8

然後a=8

之後a*5=40

接著i=40

最後a+6=14 沒用

結果:i=40,a=8

這個查一下運算子優先順序就可以了。 一般情況,寫程式不會這樣寫的

14樓:氣宇軒昂的牛牛

呵呵,這個問題純屬考c語言的語法規則的,一般人不會這樣用的.

其實這個是c的逗號表示式的值的問題,c中一個逗號表示式的值為最右邊的值

如int a;

a=(4,2,4,1,5,7,9,0);

則a為0

至於i=(a=2*4,a*5),a+6;

i的值為括號裡面逗號表示式的值,a=2*4,則a為8,,a*5則這個括號逗號表示式的值為40,即i=40,後面a+6跟i沒關係,是整個逗號表示式的值.

15樓:

記住一點:當a = (b, c); 此時a = c (括號的級別比等號高,也是最高的一個)

當a = b, c;此時a = b(因為等號的級別比逗號高)然後你再看你的程式。

#include

int main()

a = 2 * 4, a * 5 ----- 說明a = 2 * 4,所以a = 8.

i = (a = 2 * 4, a * 5), a + 6; ------說明i = (a = 2 * 4, a * 5),進一步說明i = a * 5。之前我們知道a = 8,所以帶入後,i = 40.

我用visual驗證過,i最後的確為40, a最後為8

16樓:匿名使用者

等號的級別高於逗號!

所以 a等於8,i等於40。

已知int a=5;執行語句a=3*5,a*4,a+5;後變數a的值是多少?

17樓:荀弘壯慶驕

因為逗號運算子的優先順序最低,所以a=15,後面的a*4,a+5不改變任何變數的值

a=(3*5,

a*4,

a+5)這樣的式子就會等價於a=a+5=10,逗號運算子的規則就是從左往右依次執行,並返回最後一個表示式的值

18樓:檀偉彥祿晏

逗號運算子連線的多個表示式都會得到執行,但最終取最後一個表示式的值作為整個逗號表示式的值。

a=3*5,

a*4,

a+5;

由於=的優先順序比逗號高,所以這句話其實和下面這句話不是一回事:

a=(3*5,

a*4,

a+5);

你題目那句話,實際只有第一個a=3*5改變了a的值,後面兩個都沒有改變a的值,所以最終a的值是15。

已知int a,b;執行語句a=(b=3*2,b*4),a+6;後變數a的值為?

19樓:範幼菱但勝

根據運算子優先順序:?:條件運算子大於=賦值運算子,所以本題實際上是b=(a>3?2:1);

因為a=3,所以a>3判定失敗,結果為1

所以b=1

20樓:匿名使用者

按照優先bai級順序

1,先執行括號du

內的運算,且是從zhi左到右進dao行計算,所以括號結束後有回b=24,

2,將b的值答賦給a

3,然後執行a+6,這裡僅是進行一次加法運算,並沒有對a再次賦值,所以a的值是沒有改變的

故最後a=24

21樓:匿名使用者

先執行小括號裡的逗號表示式,得到b等於6,a=24,再執行a+6,得到整個表示式值為30.主要是考慮其逗號表示式與賦值的優先順序。

22樓:求知者不老

#include "stdio.h"

main()

運算出來是 24

已知int,a;執行語句i=(a=3,a++,--a,a+4,a+5,++a);後,變數i的值怎麼算

23樓:

確實i的值為4.

這道題要弄明白,首先要知道(a = 3, a ++, -- a, a + 4, a + 5, ++a)括號內是逗號表示式,該表示式的值是最後一項的值,也就是++a的值,而且逗號表示式的運算順序是從左到右。

這裡我們來算一下:首先a = 3,即為a初始化,值為3;接下來a ++,a自加,則a由3變成4,遇到-- a,a自減,則a由4變成3,然後a+4=7,a+5=8,記住此時a的值不變,都是3,最後遇到++a,a進行自加,就由3變成4。這是a最後的值,也是該逗號表示式的值。

所以i的值就為4。希望我說的你能明白。這種型別的題,要耐著性子,跟著題目慢慢算。

24樓:叢培勝示卯

恩從左到右依次計算

a=3a++完成後a=4,--a後a=3,a+4與a+5是迷惑人的,他們吧是給a賦值的,到最後執行++a,a=4這樣就完成了!

25樓:淦仁蔣嬋

a+4,

a+5只是計算這兩個的值,並不改變a的值,最終i還是等於++a的值。

如果是a+=4,

a+=5,那麼值就有變化了。

26樓:樸丹樊鳥

逗號表示式,其值為最後一表示式的值,也就是++a值,即i=++a;

若有定義語句int a 12,則執行表示式a a a a

a a a a,運算子和結合性,bai由運算子優 先級,du 優先順序為zhi4,和 優先順序為14,結合方向從dao左至回右,和 從右至左,所以 先計答算 a a a 12,a a 12 12 24再計算 a a a 即a a a a 12 24 12,最後計算 a a,即a a a 12 12 ...

若有定義語句int a 12,則執行表示式a a a a後a的值為

a a a a,運算子和結合性,由運算子優先順序,優先順序為4,和 優先順序為14,結合內方向從左至右,和 從右至左容,所以 先計算 a a a 12,a a 12 12 24再計算 a a a 即a a a a 12 24 12,最後計算 a a,即a a a 12 12 24 若有定義語複句in...

若a12則執行語句aaa後a值是0執行a

這是兩個空嗎?若a 12則執行語句a a a後a值是2,執行a 2 3後a的值是27.此解答僅供參考。應該是60,因為根據賦值運算子的右結合性,原式 a 2 3 60 若有定義語句int a 12,則執行表示式a a a a後a的值為多少?a a a a,運算子和結合性,bai由運算子優 先級,du...