-1

这是代码的草稿。我想知道使用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

4 回答 4

2

是的,这是有效的,但它会j在分配后增加。要j在分配之前增加,你需要做++j

这是前增量与后增量的概念。

于 2013-11-09T16:07:34.323 回答
2

是的,这是正确的,但读起来有点混乱。最好是这样:

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

或者简单地说:

for (int i = 0; i != 10; ++i)
{
    array[i] = i;
}
于 2013-11-09T16:08:19.500 回答
0
array[j++] = i;

相当于:

array[j] = i;
j++;

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

会调用未定义行为的一个是:

array[i++] = i;
于 2013-11-09T16:07:41.877 回答
0

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

array[j++] = *( array + (j++) ) ==> It just increments j, does not modify array
于 2013-11-09T16:08:59.143 回答