'float *'赋值为'float * [1000]'的类型不兼容

时间:2017-07-05 17:20:05

标签: c++

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

的分配中不兼容的类型

2 个答案:

答案 0 :(得分:2)

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

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;
}

答案 1 :(得分:1)

float *w2[1000];

是错误的,应该是float *w2;

float a[1000];
float b[1000];
float c[1000];

int main()
{
float *w1;
w1 = a;
float *w2;
w2 = b; 
}

编译没有错误。

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