函数调用指针的问题~
把一个简单得数组赋值再输出的程序用函数+指针写出来,结果问题一大堆,越来越糊涂了#include "stdio.h"
#define N 5
void fun2(int *p,int i){
for(i=0;i<N*N;i++)
printf("%d ",*(p+i));
}
void fuzhi(int *p,int i){
int j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
*(p+N*i+j)=N*i+j;
}
main(){
void fun(int *a,int,int(*p)(int*c,int));
int a[N][N],*p,i=0;
p=*a;
fun(p,i,fuzhi);
fun(p,i,fun2);
getch();
}
void fun(int *a,int b,int(*p)(int*c,int)){
(*p)(a,b);
}
总提示这两行有错。。。大家帮帮忙把~谢谢啦~
----------------解决方案--------------------------------------------------------
哦~发现错误了!!!
原来是void fun(int *a,int,void(*p)(int*c,int));调用的函数是VOID 所以不能用INT
----------------解决方案--------------------------------------------------------
#include "stdio.h"
#define N 5
void fun2(int *p,int i){
for(i=0;i<N*N;i++)
printf("%d ",*(p+i));
}
void fuzhi(int *p,int i){
int j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
*(p+N*i+j)=N*i+j;
}
int main(void){
void fun(int *a,int,void(*p)(int*,int));
int a[N][N],*p,i=0;
p=*a;
fun(p,i,fuzhi);
fun(p,i,fun2);
getchar();
return 1;
}
void fun(int *a,int b,void(*p)(int*,int)){
p(a,b);
}
----------------解决方案--------------------------------------------------------
回复 3# 的帖子
还是谢谢啦~~ ----------------解决方案--------------------------------------------------------
其实你看错误提示就很明了了
----------------解决方案--------------------------------------------------------
回复 5# 的帖子
是诶。。。不过现在发现C语言学的好糊涂啊。。。看到一堆代码就晕菜了。。。 ----------------解决方案--------------------------------------------------------