不知算不算发现,请赐教!

DaySummer 2003-02-23 10:03:22
前几天,在论坛上有网友张贴子关于++的问题。即:
int a,b;
a=2;
b=(++a)+(++a)+(++a);
求a,b的值
a的值很显然应该是5,可b的值就有些类外了,在borland c++,Turbo C里编译都为15,可在VC++里就为13,在VJ++里就是12.
15=5+5+5
13=4+4+5
12=3+4+5
规则就是这样,在VC里它前两个括号必须先运算然后再作+的二元运算,之后每有二元便运算.
...全文
34 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
勉励前行 2003-02-24
  • 打赏
  • 举报
回复
編譯器沒報錯的代碼不一定就是正確的代碼。
勉励前行 2003-02-24
  • 打赏
  • 举报
回复
編譯器沒報錯,可我把這些當做錯誤代碼,
為什麼編譯器不報錯呢?我們應該建議編譯器對這種代碼給出警告。
heigemen 2003-02-24
  • 打赏
  • 举报
回复
这样的代码实际应用中很少用到,它的可移植性差
garbriel 2003-02-24
  • 打赏
  • 举报
回复
From <<C++ Primer>>:
“使用语言特性应该遵从应用的逻辑。”
x2jack 2003-02-23
  • 打赏
  • 举报
回复
这样的代码实际应用中很少用到,且它的可移植性这么差。
用户 昵称 2003-02-23
  • 打赏
  • 举报
回复
我建议还是不整这个好。
maddogdog 2003-02-23
  • 打赏
  • 举报
回复
还是可以有助弄懂一些基本东西的.
madmanahong 2003-02-23
  • 打赏
  • 举报
回复
研究这个的意义似乎并不是特别大……
brucegong 2003-02-23
  • 打赏
  • 举报
回复




没事不要写这样的“高深”代码




jeff__lueny 2003-02-23
  • 打赏
  • 举报
回复
很早就知道了,记得老师上第一节C++课就跟我们说过这个问题,这个是编译器的问题。
zhz44 2003-02-23
  • 打赏
  • 举报
回复
不同的编译器解果不同,这早有讨论了。

69,379

社区成员

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

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