鱼C论坛

 找回密码
 立即注册
查看: 6354|回复: 7

关于运算符优先的问题

[复制链接]
发表于 2014-7-15 16:48:15 | 显示全部楼层 |阅读模式
1鱼币
#include <stdio.h>

void main ()
{
   int a,b,c,d;
   a=5;
   b=5;
   c=(a++)+(a++)+(a++);
   d=(++b)+(++b)+(++b);
   printf("%d,%d\n,%d,%d\n",a,b,c,d);
}


按照这个代码,可以说说,为什么c=15,d=22,按我的理解,不应该是5+6+7=18吗。。。d不应该是6+7+8=21吗

最佳答案

查看完整内容

光这个不够的哦 这个不同编译器编译出来的结果也可能会不同的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 16:48:16 | 显示全部楼层
vicdd 发表于 2014-7-16 10:45
注意++b与b++的区别!

光这个不够的哦
这个不同编译器编译出来的结果也可能会不同的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 16:54:34 | 显示全部楼层
论坛搜索自增
N多大神有过详细解答了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 17:44:17 | 显示全部楼层
我感觉研究这个没有什么意义,在真正的开发中,你完全没有必要这么做。你还不如研究点更有价值的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 18:25:48 | 显示全部楼层
:sweat:这个去百度吧,百度上很多
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-15 18:48:12 | 显示全部楼层
a++是先运算然后再自加1,所以c=15;运算完后a=8了;
运算的顺序是从左到右:
第一次:++b —— b = 6
第二次:++b —— b = 7
++b + ++b —— result = 7 + 7 = 14

第三次:++b —— b = 8
14+ ++b —— result = 22
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-16 10:45:41 | 显示全部楼层
注意++b与b++的区别!

点评

光这个不够的哦 这个不同编译器编译出来的结果也可能会不同的  详情 回复 发表于 2014-7-16 12:25
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-16 12:28:10 | 显示全部楼层
不知道你搜索了没有
其实这个纠结完全没必要
你以后也千万不要这么写
应为这个不同编译器得到的结果也会不同
就把自增自减写出一个独立的语句就好
如i++; 这样 i++; ==++i;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-24 21:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表