系统粉 > 电脑问答 > 其他问答

已解决一道笔试题

提问者:如此难以忘记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
相关问答
最新其他问答
解决方法