鱼C论坛

 找回密码
 立即注册
查看: 2581|回复: 18

新手求解释下这个。

[复制链接]
发表于 2014-7-27 00:34:01 | 显示全部楼层 |阅读模式
10鱼币
c=num1+++num2   请问到底是c=(num1++)+num2还是c=num1+(++num2)   新手哦 求解释下。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 07:47:32 | 显示全部楼层
有优先级的问题,不过结果是不是一样啊。。。
括号里的先运算(从左到右)
就跟数学里的结合律一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 08:38:51 | 显示全部楼层
这个为什么不自己编个小程序测试下呢?一试不是就知道了吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 08:49:35 | 显示全部楼层
←_← 自己用print调试下不要光知道问要自己调试啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 09:23:45 | 显示全部楼层
自己调试看看,用TCHAR宏打印结果

点评

←_← 标准C需要 TCHAR←_←?? 直接printf();输出就好了啊 你觉得问这个问题的人知道什么是宏么  详情 回复 发表于 2014-7-27 10:34
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 10:34:38 | 显示全部楼层
feixiangmenghu 发表于 2014-7-27 09:23
自己调试看看,用TCHAR宏打印结果

←_← 标准C需要 TCHAR←_←??
直接printf();输出就好了啊 你觉得问这个问题的人知道什么是宏么

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 10:35:34 | 显示全部楼层
如果你很喜欢纠结这些语法问题
建议你看看
C陷阱与缺陷
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 10:36:05 | 显示全部楼层
那边就有讲像i+++++i这种
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 13:29:32 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 17:34:16 | 显示全部楼层
++和--,+,-运算符属于同一优先级,从右到左结合,所以这个表达式是这样的c = (num1++) + num

点评

不一定的哦  详情 回复 发表于 2014-7-27 20:26
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 20:26:04 | 显示全部楼层
Atman 发表于 2014-7-27 17:34
++和--,+,-运算符属于同一优先级,从右到左结合,所以这个表达式是这样的c = (num1++) + num

不一定的哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 21:58:45 | 显示全部楼层
不同编译器对 ++ --的结合方向有可能不一样的。这个我觉得没有一个统一的答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-27 23:21:43 | 显示全部楼层
上面说错了:funk:,++,--和+(加),-(减)不是同一优先级,首先对于=号是右结合,而右边是个加法运算,至于c = (num1++) + num2,还是c = num1 + (++num2)要看不同的编译器了,如果是VC的话在c = num1+++num2这个表达式中++num2优先于num1++;vc不是可以反编译吗,看一下汇编代码就清楚了。{:1_1:}

点评

这么说就对了  详情 回复 发表于 2014-7-28 08:54
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-28 02:32:12 | 显示全部楼层
后面的,因为就好像
b = 1
a = b++的结果是a = 1
a = ++b的结果是a = 2一样,++总是最后算
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-28 02:59:59 | 显示全部楼层
c=(num1++)+num2
虽然num1最后结果一样,但是c=num1+++num2 这样写的话,运行起来会慢很多吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-28 08:54:26 | 显示全部楼层
Atman 发表于 2014-7-27 23:21
上面说错了,++,--和+(加),-(减)不是同一优先级,首先对于=号是右结合,而右边是个加法运算, ...

这么说就对了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-30 23:50:14 | 显示全部楼层
好像跟编译器有关的,不同的编译器对++--的处理不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-7-31 08:57:06 | 显示全部楼层
首先必须说应该自己动手实验一下,再者,这样的写法不是一个好的编程习惯,不必纠结这些
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-8-16 00:39:12 | 显示全部楼层
从汇编看来就是num1+num2;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 06:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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