#include <stdio.h>
int main(void) {
int values[10];
int a = 10;
values = &a;
printf ("the value is = %i.\n\n", *values);
return 0;
}
这段代码是为了试验指针而编写的,我刚开始学习它。 我的问题是,如果数组的名称是指针,那么为什么我们不能将其他变量的地址复制到其中。
它给出的错误是&#34;赋值给表达式的数组类型&#34;
请以简单的方式解释。
答案 0 :(得分:1)
数组指示符是不可修改的左值。您不能在赋值表达式的左侧使用数组指示符。
因此编译器会为此语句发出错误
int values[10];
int a = 10;
values = &a;
^^^^^^^^^^
答案 1 :(得分:1)
无法分配数组。您可以将值存储到数组元素中,并且可以将数组地址存储到指针中,但数组本身不能出现在赋值运算符的左侧。
您可以将values
更改为指针:
#include <stdio.h>
int main(void) {
int *values;
int a = 10;
values = &a;
printf ("the value is = %i.\n\n", *values);
return 0;
}
或者您可以将a
存储到values[0]
:
#include <stdio.h>
int main(void) {
int values[10];
int a = 10;
values[0] = a;
printf ("the value is = %i.\n\n", *values);
return 0;
}
将阵列视为停车场: