0 c pointers chaining undefined-behavior
我知道在分号之前没有序列点,但对于在表达式中使用旧值2的解引用指针是否有合理的解释?
或者它可以简单地作为未定义的行为放下?
int i=2; int *x=&i; *x+=*x+=i+=7;
结果:
i= 13
Jam*_*lis 7
这是"简单"未定义的行为.
也就是说,编译器可能会发出读取i一次值然后执行所有算术的代码,然后存储新值i.
i
找出真正解释的明显方法是查看编译器生成的程序集.
归档时间:
15 年,1 月 前
查看次数:
121 次
最近记录: