inta2a23a的值為什麼等於

2021-05-16 13:22:14 字數 1560 閱讀 8678

1樓:莫道無情

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。

2樓:足壇風行者

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、關係     < <= > >=     從左到右

3樓:我的賬號很強大

怎麼可能等於12呢?

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

答案是肯定是10,

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

#include

int main(void)

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

4樓:匿名使用者

執行順序如下:

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

5樓:匿名使用者

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

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

6樓:小佳佳

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

7樓:匿名使用者

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

8樓:

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

c語言中,inta 3,b 2,c 1,為什麼賦值語句a b c 1錯誤了

賦值語句沒有錯,錯的應該是變數的說明語句 inta 3應該在變數與型別說明符間加空格以示區別 int a 3,b 2,c 1 沒有錯啊。include int main inta 3 這個連起來寫已經錯了。當然,排除你是筆誤。a b c 1,是合法的。沒有錯誤。在vs 2010中可以編譯通過。因為a...

當m為何值時,關於x的方程3xm2m23mx的解小於

3x m 2 m 2 3m x 3x m 2m 4 3m x 3x x 3m m 2m 4 2x 4m 4 x 2m 2 2m 2 5 2m 7 m 7 2 當m取何值時,關於x的方程3x m 2 m 2 3m x的解在 5和5之間 不包括 5和5 解方程3x m 2 m 2 3m x,移項,得 3...

若x2 3x 1,求x2 x4 x2 1 的值

x 3x 1 0 同除x,得 x 3 1 x 0 則 x 1 x 3 x 1 x x 1 x 2 9 所以 x 1 x 7 x x 4 x 1 分子分母同除x 得 x x 4 x 1 1 x 1 1 x 把x 1 x 7代入,得 x x 4 x 1 1 x 1 1 x 1 7 1 1 8 祝你開心!...