A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

int b=3;
printf("%d\n",(++b)+(++b)+(++b));
结果等于16
求解析...

14 个回复

正序浏览
DUKEMAN 来自手机 中级黑马 2015-8-5 20:01:35
15#
魔尊 发表于 2015-8-5 14:04
经过测试在Windows平台下的vs2013上,打印结果竟然是18
在Mac平台下的XCode的打印结果竟然是15 ...

看到运行不同结果我也是晕了
回复 使用道具 举报
vc  6.0  是16求解释  
回复 使用道具 举报

回复 使用道具 举报
十五是正解
回复 使用道具 举报
经过测试在Windows平台下的vs2013上,打印结果竟然是18
在Mac平台下的XCode的打印结果竟然是15
回复 使用道具 举报
奇怪了  我在xcode  c 跟oc 下运行结果都是  15
回复 使用道具 举报
大概明白了
因为运算时是从左往右,一个一个运算符来的,++b是吧b+1然后使用b本身,
也就是内存中是这样的,
比如b存放在位置 f0,这时值是3,
从左到右运算,第一个+号两边的值先运算,
两次++后 f0的值是5,这时使用 b进行加法运算,
就是b+b 为10,将第一个运算结果10保存在f4上,
最后再用f4上的值与f0上的值相加,b由于后面又调了一次++,
f0上变成6,f4上是10,就是16了;


刚分析的,写的有点乱,不知道能不能看懂


回复 使用道具 举报
DUKEMAN 来自手机 中级黑马 2015-8-5 12:11:02
8#
呃 不是吧,我咋觉得也是15呢
回复 使用道具 举报

运行是16.。答案也是16
回复 使用道具 举报

运行是16  答案也是16
回复 使用道具 举报
wowthe1st 发表于 2015-8-5 11:56
话说我也以为是15,运行下还真等于16,等我研究下

哈哈 是吧
回复 使用道具 举报
话说我也以为是15,运行下还真等于16,等我研究下
回复 使用道具 举报
4+5+6  应该是15吧
回复 使用道具 举报
应该等于15吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马