我正在研究一些C代码。
有这样的功能;
void Get(double x_la[],
double y_la[],
double z_la[])
在函数体中,由于我创建的其他一些原因;
double (*la)[3];
据我所知,x_la,y_la和z_la是double类型的指针。
我需要“连接”与之前的“la”相关的指针,所以我想尝试一下;
la[0]=x_la;
la[1]=y_la;
la[2]=z_la;
但在使用gnu编译器进行编译时出现错误;
错误:将'double *'赋值为'double [3]'
时出现不兼容的类型我做错了什么?否则,怎么能做得好呢?
由于
Pd积。宣告
是否完全相同加倍y_la []
或
double * y_la
答案 0 :(得分:4)
您想要double *la[3];
。
正如你所知,la
不是指向double的指针,而是指向三个数组的指针,因此每个la[i]
仍然是指向除double之外的其他指针,并且存在双重问题,因为你真的只有其中一个。
关于第二个问题,它们在参数列表中只是相同的,即使只是在旧式声明中也是如此。输入原型后,类型一致性由一组更精确的规则控制。