将"float*"赋值为"float* [1000]"中的不兼容类型

Incompatible types in assignments of 'float*' to 'float* [1000]'

本文关键字:float 不兼容 类型 赋值 1000      更新时间:2023-10-16
float a[1000];
float b[1000];
float c[1000];
int main()
{
float *w1;
w1 = &a;
float *w2[1000];
w2 = &b;
...
}

所以错误:无法在作业中将float (*)[1000]转换为float*- 转换为w1编译器抛出错误:float*赋值中的类型不兼容float * [1000]w2

可能你打算做这样的事情?

float a[1000];
float b[1000];
float c[1000];
int main()
{
float *w1;
w1 = a;    // no need of &
float *w2; // no need of [1000]
w2 = b;    // no need of &
return 0;
}
float *w2[1000];

是错误的,应该float *w2;

float a[1000];
float b[1000];
float c[1000];
int main()
{
float *w1;
w1 = a;
float *w2;
w2 = b; 
}

编译没有错误。

"&"适用于单个变量,而不是单个变量的数组。当你用[]实例化数组时,你的变量实际上会转换为指针。