我需要知道以下代码是否是一种未定义的行为(我非常肯定是这样):
int main(){
int z=53;
z=z<<=3;
return 0;
}这是课堂考试中的一个问题。我告诉我的老师我认为是UB,但我的老师不相信我。
发布于 2015-01-19 20:37:53
它还没有定义。请参阅N1256,C99草案,第6.5/2款(重点是地雷):
在前一个序列点和下一个序列点之间,对象的存储值最多应该通过表达式的计算一次修改一次。72)此外,先验值应仅用于确定要储存的值。73)
https://stackoverflow.com/questions/28032959
复制相似问题