int a 2 a a a 2如何計算

時間 2022-07-16 23:10:06

1樓:星天閣主

結果是0,應該是這樣的,從右往左依次計算,先是這個,a*=a 2;相當於a=a*(a 2);結果是,a=8;然後再計算a-=(a*=a 2)後面括號裡返回值為8,所以就是:a=a-a=0;其實就是什麼都沒算!

2樓:永鴻才

a=2,則a+2=2+2=4 那麼a*=4,則a=a*4=2*4=8 那麼a-=8,則a=8-8=0

結果我已經試驗過了,絕對正確,**如下:

#include

using std::cout;using std::endl;

int main()

3樓:匿名使用者

根據運算子優先順序,

-=,*=都是從右往左計算,所有先算a+2,然後再從右往左計算。

最好別寫這種**,不同編譯器出來的結果是不一樣的,而且不同語言環境,出來的也有可能不一樣。

4樓:it日常總結

=為右結合,從右到左算,等效於:

a*=a+2;整個表示式的結果為a(8),所以下一步為

a-=a; 不論a為何值,最終a=0

5樓:良可

a*=a+2 => a=a*(a+2) => a=8

a-=a => a=a-a=0

所以等於0

int a=2;a+=a-=-a*a++; a為多少?謝謝

6樓:

int a=2;

a+=a-=-a*a++;

相當於int a=2;

a+=a-=-a*a;

a++;

好了,我們來算a+=a-=-a*a;

他又相當於:

a-=-a*a;

a+=a;

又相當於:

a=a-(-a*a);

a=a+a;

再結合之前的a++;

整個a+=a-=-a*a++;

就相當於:

a=a-(-a*a);//a原來值為2,運算完之後 a=2-(-2*2)=6

a=a+a;//a的值已經變成6,運算完之後 a=6+6=12;

a++;//a變成12,再自增1,所以運算完之後 a=13所以最後a的值是13

7樓:匿名使用者

見誰這麼寫**你就拿大嘴巴使勁抽他,抽到他知道拆語句和加括號為止。

8樓:

先拆開表示式為 a = a+(a=(a-(-(a*a)++))=a+(a=7)=7+7=14

1、a=(a-(-(a*a)++))=(2-(-4++))=2-(-5)=7

2、a=a+a=7+7=14;

int a=2;a+=a*=a-=a*=3;a=?

9樓:gta小雞

a+=a*=a-=a*=3 是未定義行為。**的後果是不確定的。

10樓:匿名使用者

因為a-=a*=3算出的a已經等於0了,所以最後a肯定等於0。

設有變數定義int a=2;計算表示式a+=a/=a-=a*a,變數a的值是

11樓:風若遠去何人留

從右向左計算

a-=a*a >>> a=2-2*2=-2a/=a >>> a=-2/-2=1

a+=a >>> a=1+1=2

於是 最終a的值是2

12樓:匿名使用者

a*a = 4

a-=4 ===> a = -2

a/= (-2) ===> a = 1a += 1 ===> a = 2

結果a= 2;

int a=2; a*=2+3;a的值為什麼等於12?

13樓:莫道無情

a的值是10 ,不是12。

int a=2; a*=2+3;語句執行過程:

int a=2;//將2賦值給a

a*=2+3;//要考慮運算子的優先順序

,運算子+的優先順序大於*=,故a*=5,即a=a*5。a被賦值為2,所以a=2*5=10。

14樓:足壇風行者

int a=2; a*=2+3;a的值不等於12,而是10。

a*=2+3;這個程式算式中是優先算2+3的,因為+的優先順序比*=高。

也就是a*=5;

a*=5相當於a=a*5,又因為已經定義了a=2,所以a*5=2*5=10。

printf(a)時執行程式後得出結果也是10。

擴充套件資料

c語言中的運算子優先順序介紹:

運算子的優先順序確定表示式中項的組合。這會影響到一個表示式如何計算。某些運算子比其他運算子有更高的優先順序,例如,乘除運算子具有比加減運算子更高的優先順序。

例如 x = 7 + 3 * 2,在這裡,x 被賦值為 13,而不是 20,因為運算子 * 具有比 + 更高的優先順序,所以首先計算乘法 3*2,然後再加上 7。常見的運算優先順序如下:

1、字尾     () -> . ++ - -      從左到右

2、一元     + - ! ~ ++ - - (type)* & sizeof     從右到左

3、乘除     * / %     從左到右

4、加減     + -     從左到右

5、移位     << >>     從左到右

6、關係     < <= > >=     從左到右

15樓:我的賬號很強大

怎麼可能等於12呢?

這種東西自己試一下就好了。

答案是肯定是10,

a*=2+3也就是a=a*(2+3)=2*5=10。

#include

int main(void)

上面的**放到vc下面 執行一下,輸出a的值看看。

16樓:匿名使用者

執行順序如下:

1、a=2 a初始化為22、2+3 得到一個臨時值53、a*=() 等價於 a=a*() , 這兒的括號裡是上面的結果5,因此a=2*5 ,最後得到10.

17樓:匿名使用者

複合賦值運算子(+=、-=、*=、/=)的優先順序低於算數運算子(+、-、*、/),所以a *= 2 + 3可寫作

a = a * (2 + 3),由此可見,2 * (2 + 3) = 10。

18樓:小佳佳

a*=2+3等價於a=a*(2+3),所以a=10

19樓:匿名使用者

2樓的兄弟,你是故意的還是?2+3是等於6嗎?這個結果等於10,除非是2*3,才等於12.

20樓:

a = a *(2+3)=2*5=10

2 若有以下說明 int a 121,2,3,4,5,6,7,8 char c a,d,g則數值為4的表示式是 DA a

a.a g c 因為g沒有值,所以計算的時候會按地址的值來計算。錯 b.a 4 表示的是第5個數。為5c.a d c 使用ascii計算 d c 1,即a 1 2 d.a d c 注意c沒有單引號,故a d c a d a 使用ascii計算 d a 3,即a 3 4 故選擇d 希望能幫助你! 變數...

spss如何計算2和p值,spss如何計算x2和p值

紫煌唯 健康教育知曉率前後對照如何計算 x2 p 瞭解 不瞭解 瞭解 不瞭解 x2 p 42 64.62 23 35.38 53 81.54 12 18.46 怎麼用spss算這個表的x2和p值 10 分3列錄入資料,行 列和發病數 怎樣用spss計算p值? 第溪齊白楓 先把資料按照格式錄入到sps...

int a 3,b 2,c 1 c 5 abprintfd n ,c 輸出為什麼是3啊?求大神指點

因為c 5永遠是 真 所以執行?後的a 而a 是後 要把a的值3賦給c後a才變為4。 單屏安 c 5這個條件為假,應該執行b 得b 1,但是最後輸出為c,c不變,應該是c 1 飛向夢想飛向未來 c語言提供一種特殊的運算子 逗號運算子。用它將兩個表示式連線起來。如 3 5,6 8 稱為逗號表示式,又稱...