新人求助,函数指针问题
#include <stdio.h>int main()
{
double score = {{60.0, 70.0, 80.5, 90.5}, {56.0, 89.0, 67.0, 88.0}, {34.2, 78.5, 90.5, 66.0}};
double *search(double *pointer, int n);
int num,i;
double *p,*e;
printf("please enter in ······");
scanf("%d",&num);
p=search(score,num);//为什么说不能将double (*)【4】转换为double *,应该怎么改呢
for(i=0;i<4;i++){
printf("%2.1f ",*(p+i));
}
printf("\n");
}
double *search(double *pointer, int n){
double *pt;
pt = *(pointer + 4*n);
return pt;
}
函数定义的是一个double指针,你传入了一个double二维数组当然不行 BngThea 发表于 2017-12-22 12:18
函数定义的是一个double指针,你传入了一个double二维数组当然不行
不是说会转换成数组首个数字的地址吗? jason_sk8erboy 发表于 2017-12-22 12:28
不是说会转换成数组首个数字的地址吗?
那是一维数组,二维数组名其实是一个指向数组的指针,而不是指向数据的指针 pt = *(pointer + 4*n);》》》
pt = &(pointer + 4*n); score这个是代表的二维数组的首地址
但是要索引二维数组中的元素是不能按一维数组的方法索引 爱晴海 发表于 2017-12-22 13:13
pt = *(pointer + 4*n);》》》
pt = &(pointer + 4*n);
pt = *(pointer + 4*n);》》》
pt = pointer + 4*n;
应该是这样pointer+4*n其实就是取score,score,score的地址 sp1ral 发表于 2017-12-22 17:26
pt = *(pointer + 4*n);》》》
pt = pointer + 4*n;
应该是这样pointer+4*n其实就是取score,s ...
好像加不加&都可以啊
页:
[1]