水木社区手机版
首页
|版面-C程序设计语言(CProgramming)|
新版wap站已上线
返回
1/1
|
转到
主题:在这段程序中的优先级怎么判断?
15楼
|
fourwind
|
2023-12-23 02:39:00
|
展开
同一段(不规范)代码,不同编译器出来的结果可能不一样,抓狂。
【 在 smartlinux 的大作中提到: 】
:
: 工程实践中,这就是正道。
--
FROM 104.194.79.*
18楼
|
fourwind
|
2023-12-23 14:39:13
|
展开
int j=1;
cout<<(j++)<<(j++)<<(++j)<<(++j);
我印象中在ms的vc里和gcc出来的结果不一样。所以我说不规范的代码里可能会出来不一致的结果;
int *p;
p = 0;
好像有一个编译器会报错,另一个就不会。
【 在 z16166 的大作中提到: 】
: 那不可能吧
: 只有UB的代码才会。或者是编译/优化器的bug
:
--
FROM 223.102.68.*
20楼
|
fourwind
|
2023-12-23 18:55:37
|
展开
你这么写是推荐的写法,都没问题。我那种写法就不行,在两种编译器下结果不一样。
【 在 z16166 的大作中提到: 】
: 这不是UB。
: 函数调用是一个sequence point,有4个串行的函数调用
: std::cout::operator<<(j++)
: ...................
--
FROM 223.102.68.*
22楼
|
fourwind
|
2023-12-23 22:21:49
|
展开
抱歉啊,我只是偶尔用用C++,不懂这些术语,只是在试图了解j++和++j的区别时,想起之前好像有人提到这个现象。
我用的是 VC 2010,可能有点老了
【 在 z16166 的大作中提到: 】
: 我觉得我的写法就是你的写法的等价翻译、拆开。
: 那4个operator<<( )的调用谁在前、谁在后,按说也是确定的。
: 不过GPT认为有问题,但我给它纠正了,反正它是顺着我的话说的。
: ...................
--
FROM 223.102.68.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版