楼主:
m8403051 (大吉岭红茶)
2020-04-20 09:37:40开发平台(Platform): Linux CentOS 7
编译器: gcc version 4.4.7 20120313 (Red Hat 4.4.7-23)
预期的正确结果(Expected Output):180
错误结果(Wrong Output):215
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
https://ideone.com/e.js/nn576o
#include <iostream>
using namespace std;
int main() {
int a=6, b=7;
a *= a
作者: jerryh001 2020-04-20 09:41:00
同一行不能修改a两次以上 会UB
楼主:
m8403051 (大吉岭红茶)
2020-04-20 11:53:00所以这样的写法是不好的写法吗?另外, g++ 有可能修改设定修正吗?
楼主:
m8403051 (大吉岭红茶)
2020-04-20 12:19:00了解了, 搜索到一些 undefined behavior 的资讯, 谢谢
作者:
mmmmei (mmm煤)
2020-04-20 12:57:00十三戒第八条
都2020了还有人在出这种题目 鱼骨题真是祸害遗千年
xD想说怎么会是 UB, 还没看到解答语言也是会演进的, 所以答案也不会一成不变
作者:
oToToT (å±å©)
2020-04-20 20:56:00在C++17下这样还是UB吗
原PO提的编译器是gcc4.4.7 所以应该用c++0x的标准(逃)
a*=和a--之间并没有sequence point隔开,所以计算顺序没有规定