係統粉 > 電腦問答 > 其他問答

已解決一道筆試題

提問者:如此難以忘記7  |  瀏覽次  |  提問時間:2017-03-06  |  回答數量:9

一道筆試題 int a =2;int c =a++ * a++;int d =++a * ++a;a=?c=?d=?

已有9條答案
蘇向向love

蘇向向love

回答數:189  |  被采納數:68

       

(1)

2017-03-06 14:37:00
讚 18
哎呀紙風箏

哎呀紙風箏

回答數:203  |  被采納數:65

*號 是乘 還是指針?
2017-03-06 14:32:10
讚 20
什麼都不如花兒

什麼都不如花兒

回答數:198  |  被采納數:105

*號 是乘
一道很基礎的筆試題,對++-- 的考查
2017-03-06 17:36:19
讚 19
13810475539

13810475539

回答數:96  |  被采納數:100

*號 是乘
一道很基礎的筆試題,對++前置後置的考查
2017-03-06 20:28:16
讚 9
炮叔ol

炮叔ol

回答數:58  |  被采納數:139

這題目沒意義,因為d的值跟編譯器有關,不同編譯器得出的結果不同
2017-03-06 20:09:23
讚 5
heart青春如詩

heart青春如詩

回答數:88  |  被采納數:115

我怎麼感覺結果應該是
a = 2
c = 6
b = 12
2017-03-06 21:06:28
讚 8
世萌旗艦alfred

世萌旗艦alfred

回答數:69  |  被采納數:95

恩這種題目 就跟編譯器有關係了
2017-03-07 07:29:28
讚 6
周小妖lin

周小妖lin

回答數:206  |  被采納數:117

用eclipse編譯 結果是這個

(2)
2017-03-06 17:32:16
讚 20
北海陌冥

北海陌冥

回答數:32  |  被采納數:46

無論是 前++ 還是後++
都是比乘的優先級要高!
因此 先算 前++ 或者 後++
最後 才算 乘法!

前++表示先把值拿出去用,用完了在自己加一。
舉例:int a = 2;int b = a++; 的意思表示先把2拿出去用賦給b,用完了以後a自己加一,結果為a = 3, b = 2

後++ 表示先把自己加完一,再拿出去用。
舉例:int a = 2; int b = ++a; 的意思表示先把a自己加一後,再拿出去賦給b,結果為a = 3, b = 3

因此 LZ 的問題

int a = 2;
int c = a++ * a++;
int d = ++a * ++a;
根據8樓的編譯器原理 分析如下:

首先a = 2,
進行第一個a++的時候,先把2拿出去當乘數,a自加一,a變成了3
進行第二個a++的時候,先把剛變的3拿出去當乘數,a自加一,a變成了4
因此 int c = a++ * a++ = 2 * 3 = 6;
再繼續
進行第一個++a的時候,先a自加一,a變成了5,再把5拿出去當乘數
進行第二個++a的時候,先把剛變的5再自己加一,a變成了6,再把6拿出去當乘數
因此 int d = ++a * ++a = 5 * 6 = 30;
最終結果 a = 6, c = 6, d = 30
2017-03-07 06:52:13
讚 3
相關問答
最新其他問答
解決方法