关于括号的计算顺序问题

lxb365 2005-12-08 07:49:00
x=0;
(x+5)*(++x+1)和(++x+1)*(x+5)的结果为什么是一样的呢?C++对于括号的计算顺序有什么规定吗?
...全文
173 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
RainWindy 2005-12-08
  • 打赏
  • 举报
回复
刚刚已经解答了一个同类的问题,大家可以输出为汇编语句再看看就明白了,总之,这种连自己都不明白的语句就不用写了,分成两行写,没人会夸你聪明的。
x++;
...;
robbinliu 2005-12-08
  • 打赏
  • 举报
回复
wqtl_357() 注释的很清楚
chenyu17094256 2005-12-08
  • 打赏
  • 举报
回复
总结下,这个显然是依赖编译器!!!
所以实践中不要出现这样依赖编译器的写法。移植性不强。
Kenny_Glacier 2005-12-08
  • 打赏
  • 举报
回复
不好意思
看错了
楼上的
你没错
Kenny_Glacier 2005-12-08
  • 打赏
  • 举报
回复
haha
楼上太搞笑了
你加一个--x;
在两个cout中间
wqtl_357 2005-12-08
  • 打赏
  • 举报
回复
#include <iostream.h>

void main()
{
int x=0;
// cout<<(x+5)*(++x+1)<<endl; //(0+5)*(1+1)=10
cout<<(++x+1)*(x+5)<<endl; //(1+1)*(1+5)=12
}
////////////////////////////
我用的是VC
lxb365 2005-12-08
  • 打赏
  • 举报
回复
晕,你是什么编译器啊,我用的VS2005,是一样的,都是12
lzp229 2005-12-08
  • 打赏
  • 举报
回复
等高手讲讲
lzp229 2005-12-08
  • 打赏
  • 举报
回复
(x+5)*(++x+1)和(++x+1)*(x+5)

我的编译器里面他们两个是不同的。
lzp229 2005-12-08
  • 打赏
  • 举报
回复
(x+5)*(++x+1)
(x+5)*((x++)+1)

我的意思是这样是不同的。 - -!!!
lxb365 2005-12-08
  • 打赏
  • 举报
回复
可是换成x++也一样啊
lzp229 2005-12-08
  • 打赏
  • 举报
回复
当然一样 了。
把++x换成x++该不一样了。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧