编程论坛
注册
登录
编程论坛
→
C语言论坛
加法先访问谁
hoshiihoshii
发布于 2023-04-06 15:53, 204 次点击
例如
int i=0,j=0;
int k=i+j;
在第二行中先访问i还是j?
5 回复
#2
forever74
2023-04-06 16:40
没有这方面的规定。
#3
rjsp
2023-04-06 16:52
这个叫 「表达式评估(Order of evaluation)」顺序
详见 https://zh.
若不存在「先序于」规则,则评估顺序属于「实现定义」
若「副作用(side effec)」依赖于「实现定义」的「评估顺序」则属于「未定义行为」
具体到你的提问,答案是“不确定”「实现定义」
因为 评估i 和 评估j 不存在「副作用」,从C标准眼中看,无法区分当然就不用区分。
#4
东海ECS
2023-04-07 20:40
不确定。在这种情况下,编译器可能会优化代码以最大化性能,因此可能会在任何顺序中访问i和j。
#5
pvm2000
2023-04-10 00:49
先访问谁,这个重要吗
#6
jm1094sd
2023-04-22 14:08
这个有什么说法,没深入过。
1