是 arr[i] = i;合法的?

问题描述

我想将所有数组成员的值初始化为其索引。

int main()
{
    int i;
    int arr[10];

    for (i = 0; i <= 9; i++)
        arr[i] = i;
}

在这种情况下我应该考虑序列点吗?
arr[i] = i 合法且可移植吗?

解决方法

如果您在一处修改了多次,如果您在一处阅读并修改了某处,则您需要考虑序列点。

你没有做任何这些,所以你的代码没问题。

,

没有限制,只是为数组索引赋值

如果你只想要一个 0123456789 的数组就好了

虽然它只有一行,但使用 {}

for (i = 0; i <= 9; i++)
{
   arr[i] = i;
}