这是一个有效的数组赋值

时间:2013-11-09 16:05:59

标签: c arrays

这是代码草案。我想知道使用array [j ++]是否正确。同样如果正确,将首先增加j然后再分配值或其他方式

int i=0, j=0;
int array[10];
for(i=0;i<10;i++)
{
array[j++] = i; /*Is this valid? the j++ part inside an array*/
}

4 个答案:

答案 0 :(得分:2)

是的,这是有效的,但在作业完成后会增加j。要在分配前增加j,您需要执行++j

这是pre-increment vs. post-increment.

的概念

答案 1 :(得分:2)

是的,这是正确的,但阅读有点令人困惑。这样更好:

for (int i = 0, j = 0; i != 10; ++i, ++j)
{
    array[j] = i;
}

或者简单地说:

for (int i = 0; i != 10; ++i)
{
    array[i] = i;
}

答案 2 :(得分:0)

array[j++] = i;

相当于:

array[j] = i;
j++;

它有效,并且在分配后j递增。

将调用未定义行为的是:

array[i++] = i;

答案 3 :(得分:0)

有效。 array[j++]增加j而不是索引j处的元素。

array[j++] = *( array + (j++) ) ==> It just increments j, does not modify array