数组指针的应用??????

#include
int perimeter(int x,int y);
int area(int x,int y);
int solution(int x,int y,int(*ptr)());
int main()
{
int a,b;
printf(" 请输入A和B的值:");
scanf("%d%d",&a,&b);
printf(" Perimeter of a rectangle:");
solution(a,b,perimeter);
printf(" Area of a rectangle:");
solution(a,b,area);
}
int perimeter(int x,int y)
{
return (2*(x+y));
}
int area(int x,int y)
{
return x*y;
}
int solution(int x,int y,int(*ptr)())
{
int result;
result=(*ptr)(x,y);
printf("%d\n",result);
}

[Error] C:\Users\H\Documents\C-Free\Temp\未命名1.cpp:11: error: invalid conversion from int (*)(int, int)' toint (*)()'

2个回答

int solution(int x,int y,int(*ptr)());
->
int solution(int x,int y,int(*ptr)(int, int));

因为你有2个参数

二维数组经过两次偏移找到某一元素,使用的是数组指针,数组指针是一级指针

#include
#include
void print(int b[][4],int row){
int i,j;
for(i=0;i<row;i++){
for(j=0;j<sizeof(*b)/sizeof(int);j++){
printf("%2d",b[i][j]);
}
}
printf("\n");
}
int main(){

int a[3][4]={1,3,5,7,5,6};
int (*p)[4];
p=a;
print(p,3);
system ("pause");
return 0;

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐