第9行的n[i]=i+100,中[]里的i具体作用是啥,为啥不是赋值给i


#include
int main()
{
    int n[10];/* n是一个包含10个整数的数据 */
    int i, j;
    /*初始化数组元素*/
    for (i = 0; i < 10; i++)
    {
        n[i] = i + 100;/*设置元素i为i+100*/
    }
    /*输出数组中每个元素的值*/
    for (j = 0; j < 10; j++)
    {
        printf("Element[%d]=%d\n", j, n[j]);
    }
    return 0;
}

首先,n是个数组,你定义了长度为10,所以10个元素各自的访问需要通过下标,也就是n[0]---n[9]

你的 i 是一个循环变量,从0-9,那么,n[i] 就是从0-9的10个下标表示了

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    在第9行中,[]的作用是通过下标访问数组n,将变量i的值存储到n数组的第i个位置中。这个操作的目的是存储临时数据,以便在程序的后续部分使用。如果直接将i赋值给n数组中的变量,那么原本存储在n数组中的值就会被覆盖掉。所以使用[]将i作为临时变量存储在n数组中,保证了n数组中原本存储的值不受影响。

    如果想要更具体地理解这段代码的运行过程,可以参考解法一:先将数组前i个元素存在临时数组,在将余下的n-i个元素左移i个位置,最后将临时数组中的元素复制到后面i个位置。这种方法需要额外存储i个单元的内存空间来保存临时数组,但可以保证将数据存储在内存中的顺序不受影响,从而保证程序的正确性。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^