#include <stdio.h>
int main()
{
int a[5];
int i;
for (i=0; i<5; i++)
a = i;
for (i=0; i<5; i++)
printf("a[%d] = %d\n", i, a);
}
答案 0 :(得分:1)
用作操作符操作数的数组(sizeof
和一元&
除外)会自动转换为指向数组第一个元素的指针。
转换后的指针不是左值,因此不能用作赋值运算符的左操作数。
此代码有效。
#include <stdio.h>
int main(void)
{
int a[5];
int i;
for (i=0; i<5; i++)
a[i] = i;
for (i=0; i<5; i++)
printf("a[%d] = %d\n", i, a[i]);
return 0;
}
答案 1 :(得分:0)
您将a
声明为整数数组 - 而不是访问数组a[i]
的元素,而是直接访问a
,而只保存第一个元素的内存地址数组。所以你基本上是直接修改内存地址,这几乎不是一个好主意。
答案 2 :(得分:-1)
y在a = i中有错误,如果a [i] = i: int main()
{
int a[5];
int i;
for (i=0; i<5; i++)
a[i] = i;
for (i=0; i<5; i++)
printf("a[%d] = %d\n", i, a[i]);
}