社区
新手乐园
帖子详情
有关++和--的奇怪现象
richard_ma
2006-09-17 09:06:41
#include <stdio.h>
void main(){
int b, a = 5;
b = ++a*--a;
}
这个输出25
而改成
#include <stdio.h>
void main(){
int b, a = 5;
b = (++)a*(--a);
}
输出还是25
有没有高手解答一下啊,环境是VC++6.0
谢谢
...全文
202
8
打赏
收藏
有关++和--的奇怪现象
#include void main(){ int b, a = 5; b = ++a*--a; } 这个输出25 而改成 #include void main(){ int b, a = 5; b = (++)a*(--a); } 输出还是25 有没有高手解答一下啊,环境是VC++6.0 谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
al0n9
2006-09-18
打赏
举报
回复
对这种依赖于编译器实现、又没有什么实际的意义的用法,没必要浪费时间去研究
在实际工作中,写这样代码的人,都应该被打PP,打到PP开花为止。
jixingzhong
2006-09-18
打赏
举报
回复
++ --
相当于是 互相抵消了 ...
如果是 b = (++a)*(++a);
这样的话,
环境依赖性就很明显了 ...
jixingzhong
2006-09-18
打赏
举报
回复
对于这样的组合,
结果将和使用的环境相关了 ...
楼主你可以尝试在不同的环境下测试。
++ -- 组合的情况下,
合理的做法是独立这些 ++ --操作。
HappyTree
2006-09-18
打赏
举报
回复
++和--的优先级比*高,加不加括号都是一样的
aminconi
2006-09-18
打赏
举报
回复
优先级有一定的关系,但是不同系统的编译器执行结果会不一样
如果改代码,或许能更清楚点
void main(){
int b, a = 5;
b = (++a)*(++a);
}
飞哥
2006-09-18
打赏
举报
回复
执行了
++a a=6
然后执行的是
--a a= 5
最后做乘法
5*5=25
运算符优先级
richard_ma
2006-09-18
打赏
举报
回复
这不是我问的,是我同学问我,我也知道这样的代码在实际中用不上,属于有歧义的代码,但是我忽视了优先级的问题,谢谢大家提醒,又学了一招,呵呵
赶紧给大家算分,谢谢
richard_ma
2006-09-17
打赏
举报
回复
b = (++)a*(--a);
写错了,是这个
b = (++a)*(--a);
《微机原理》全套PPT教学课件(合肥工业大学)
《微机原理》全套PPT教学课件(合肥工业大学)
新手乐园
33,316
社区成员
41,771
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章