一次增加两个指数

时间:2016-02-10 15:39:24

标签: c arrays

假设我有两个int数组,array1和array2。

这一行:

array1[i++] = array2[j++];

等于:

array1[i] = array2[j];
i++;
j++;

2 个答案:

答案 0 :(得分:3)

是的,它们是等效的,除非您已经写过#DEFINE i j#DEFINE j i,在这种情况下,第一个代码段的行为是 undefined

答案 1 :(得分:2)

是的,这是允许的。

,你没有在一个没有序列点的语句中修改同一个变量两次

如果您这样做,则会调用undefined behavior

array1[i++] = array2[i++];

但这很好,因为逗号运算符引入了一个序列点:

array1[i++] = (j++,j++);