int a0 a a此時a值為多少?如何計算的

時間 2021-08-30 10:21:30

1樓:匿名使用者

a+=a++;

分解a=a+a++;

此時a為0,由於a++為先執行運算後自加,所以此時的表示式可以看成是a=0+0,

這時又涉及到運算子優先順序問題,=號為最低等級,所以先執行了a++,但是這個a++並不會影響最後的結果了,因為上面的表示式已經出來了,最終a又會被賦值成0+0的結果,所以還是0

2樓:匿名使用者

a+=a++未定義的。

就是說標準未明確規定它的結果。於是會根據不同編譯器各自有不同的結果。

你可以在用c語言在vc或者dev 下程式設計看看它的結果,沒記錯的話應該是1.

而jdk執行過程應該

a++,由於右邊的++是先執行運算後自加

所以就執行a+a(結果是0),結果為0,然後執行++(a這個時候是1),最後執行=(把前面a+a執行的結果再次賦給a,那麼a就是0),所以最後結果是0。

3樓:天涯薩迪克

主要是a+和+a有區別。

在計算時,a+先執行完運算,再把a的值加1而+a則正好相反,是先把a加1,再執行運算的題中a初始值為0

a+=a++;這個語句相當於a=a+(a++),小括號中的值為0,所以等式右邊的值0+0為0,所以輸出為0。

4樓:匿名使用者

int a=0; 定義變數並賦初值,此時變數值為初值0

a+=a++; 這是一個賦值語句:a=a+a++,等號右邊第一個a值為初值0,第二個a也為初值0,此時a 值變為2。但是賦給左邊a的值為表示式a+a++的值,因此a=0.

因此輸出結果為0

5樓:

a+=a++

就相當於a等於a加上a++

對於a++ 由於是後置++ 會先輸出原始值 再加一所以會先輸出0

結果就是 a=0+0

6樓:扌查fit人

從演算法看上去,a+=a++這一步對a的值沒有影響,a還是等於初值0.

a就只是在開始給他賦值了,後來的運算沒有給到賦值的命令

所以a還是原來的a,還是值為0

7樓:匿名使用者

a=a+(a++);

這時a=0,a++也等於0,所以a=0;

如果是a+=++a,那麼a=a+(++a);,a=0,++a=1,結果為1;

8樓:匿名使用者

真搞不懂為啥要搞這個,估計沒那個傻x寫這種**玩自己和別人吧,要是給我遇上了我就猛抽,哈哈,不過以前上學的時候老是被老師玩,不敢抽。。。

9樓:匿名使用者

a+=a++;

a = a + a++

由於a++是後++ 所以a++這個表示式的值為0,此時a的值為1,因為a=a+1,

然後a=a+a++ 就是 把1+0的值賦a結果應該是1!不知道怎麼的

10樓:

a+=a++;

分解開來就是a = a + a++

由於a++是後++ 所以a的值並沒有改變所以是a = 0 + 0 = 0

為什麼lz都把結果寫出來了還有那麼多的人說最後結果是1呢?

11樓:

a = 0;

a = a + a++

→ a = 0 + 0

結果當然是0

而如果int a = 0;

a+=++a;

的話,a = 0;

a = a + (++a)

→ a = 0 + 1

system.out.println(a);

這樣輸出結果就是1了

12樓:匿名使用者

a++ 是**執行後才變成1 所以可以理解成a+=0

這樣當然還是0

如果是a+=++a 這樣的效果完全不一樣,實質是:

a+=1

結果是1

13樓:我程式設計師

你已經定義了 變數a,而且你設定a的初始值是0.

先根據優先順序,a++的結果是0,然後a+的結果還是a,所以最後這個結果是0.不知道你懂沒有。

int a,為什麼a=a-(++a)中a的值為0?

14樓:polaris北斗

假設a=1,先計算括號內的表示式則a=2再計算a—2,此時a的值已經是2,故結果為0

int a=10;a=a++;a為什麼是10

15樓:匿名使用者

因為int型為有符號的兩個位元組,即a=10化成二進位制為0000,0000,0000,1010;再取反,即為1111,1111,1111,0101這就是b!此時將b化成10進製為-32757。但在輸出時系統自動化為-32768+32757=-11儲存

16樓:匿名使用者

誰說是10了,**結束時a已經是11了。

**相當於:

int a=10;

a=a;

a++;

此時a結果11。

17樓:

a++ 單獨使用 就是原值a

若a是int型變數,且a的初值為5,則計算a+=a-=a*a,表示式後a的值為:

18樓:匿名使用者

a=-40

因為+=和-=優先順序一樣,結合方向為右到左,所以a+=a-=a*a等價於a+=(a-=(a*a))即a=a-a*a=5-5*5=-20

a=a+a=-20-20=-40

19樓:匿名使用者

感覺是-40吧,先運算a*a=25(注意:此時a的值並未變化),第二步算a-=25,即a=a-25,a=-20,再運算a+=a(此時a=-20),所以結果是-40。

20樓:匿名使用者

-40原來字數少回答不了。。。

int a=5,b;b=(++a)+(a++),怎麼計算?

21樓:示申僉

b=(++a)+(a++);

一個++在變數前,一個是在變數後

所以相當於三句:

++a;

b=a+a;

a++;

所以最後

b=a+a==6+6==12;//因為a自增了一次後就用a的值,所以此時a的值是6

a==7;//再自增一次,就從6變成7

22樓:匿名使用者

a=5,

b=(++a)+(a++)

++a是先加後計算 a++是先計算後加

即:先算++a a=6

再算:b=a+a=12;

最後算:a++=7;

23樓:匿名使用者

a 右邊表示式56

6 6

6 12

7 12

24樓:匿名使用者

a=7,b=12,++a的結果是本來的a+1,a++的結果是a,但不管是a++還是++a,a都會+1

25樓:屈飛文邊童

a++的意思是a=a+1.

或者可以這樣理解:

inttemp;

temp

=a+1;a=

temp;

這樣能明白不?

若有定義 int a則表示式a a的值為9請高手說明下這個過程

倒黴熊 二維陣列是按行儲存的也就是如下這樣 a 0 0 a 0 1 a 0 2 a 0 3 a 1 0 a 1 1 a 1 2 a 1 3 a 2 0 a 2 1 a 2 2 a 2 3 而a表示的就是a 0 0 所在的地址。所以 a 2 1 a的值為9。 陽光上的橋 請你在草稿紙上畫一個三行 四列...

如int a 3,a a a a最後我的值為A3 B0 C9 D 12未詳細解釋

賦值運算子的優先順序低於算術運算子,結合性為從右向左。所以 a a 先計算,得到 9 然後是 a 9 此後 a的值為 6 然後是 a a 也即 a a a 6 6 12 int a 3,a a a a 這個a 3後面用逗號編譯過不去的,換成分號後,拆解後面的式子。a a a a 等效於a a a 此...

在C語言中,a為0時,表示式a 0和a 0的值為 真 嗎為什麼

a 0 是一個賦值語句 a 0是一個邏輯表示式,a為0時,說明的是後者。 一個等號和兩個等號意義不一樣的,第一個 是賦值,a的值會變,第二個 是判斷,他是邏輯運算子,意思是 如果a等於0是真的話,一般會在if等帶選擇性的語句 現。 不太明白你的問題。a 0是賦值操作 a 0是判斷 a是否等於0 的表...