This question already has answers here:
Closed 4 years ago.
Why are these constructs using pre and post-increment undefined behavior?
(14个答案)
在C中,是
a[i] = a[++i];

相当于
a[i] = a[i+1]; i++;

也就是说,首先评估作业的哪一侧,在左侧使用i的哪个值?还是这项任务模棱两可?

最佳答案

在您正在使用和递增的同一序列点中i

a[i] = a[i++];

这将导致未定义的行为。
a[i] = a[i+1];
i++;

很好。
回答你的问题是一样的吗?不,他们不是!!一个定义正确,另一个定义不正确。
检查这个answer

关于c - 在C中,{a [i] = a [++ i]}等于{a [i] = a [i + 1]; i++;}? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30771771/

10-15 14:27