如果int x=5;
我假设表达式y=++x * ++x;
被评估为:
首先执行++x
导致x=6
然后再次++x
导致x=7
表达式然后评估使用相同推理的y=x*x
值y=49
以下代码行
int z=5, x=5,y=0,p=0;
y=++x * ++x + ++x;
p= ++z + ++z * ++z;
应该评估相同的值,y
但p
编译器会产生不同的答案。我可能按照优先顺序缺少一些东西。
如果int x=5;
我假设表达式y=++x * ++x;
被评估为:
首先执行++x
导致x=6
然后再次++x
导致x=7
表达式然后评估使用相同推理的y=x*x
值y=49
以下代码行
int z=5, x=5,y=0,p=0;
y=++x * ++x + ++x;
p= ++z + ++z * ++z;
应该评估相同的值,y
但p
编译器会产生不同的答案。我可能按照优先顺序缺少一些东西。