c语言 - 我们不能像这样增加数组 arr[3] 的地址吗?



在第10行中,我收到一个错误,说表达式必须是可修改的左值。

#include <stdio.h>
int main()
{
int arr[3];
for (int i = 0; i < 3; i++)
{
printf("Enter the value of element %dn", (i + 1));
scanf("%d", arr);
arr++; // Error Here
}
return 0;
}

这没有任何意义。arr是一个数组,因此不存在"递增"的概念。您可以增加一个用作当前元素指针的变量,但i已经达到了99%。只需提示输入一个临时值,然后将其插入位置"i"的数组:

for (int i = 0; i < 3; i++)
{
printf("Enter the value of element %dn", (i));
scanf("%d", value); // Get new value
arr[i] = value;     // store value in current element
}

(对不起,我的C已经生锈了,但我希望你能看到我在做什么(。

我还将您的提示更改为使用i而不是i+1。c数组从0开始,"i"的值从0到2,这些值与元素索引相关。您可能不喜欢从0开始的数组,但它们确实喜欢,因为这不是元素"number",而是从数组开始的"offset"(这可能有助于您理解它们为什么从0开始(。

当您实际要求元素0的值时,要求元素"1"的值是令人困惑的(例如(。

最新更新