#include <stdio.h>
void fun(int (*p1)[3],int (*p2)[3]);
int main()
{
int p1[3][3]={{7,8,9},{4,5,6},{1,2,3}} ;
int p2[3][3] = {0};
int i = 0, j = 0;
fun(p1,p2);
for(i = 0;i < 3;i++){
for(j = 0;j < 3;j++){
printf("%d ",*(*(p2+i)+j));
}
printf("\n");
}
return 0;
}
void fun(int (*p1)[3],int (*p2)[3])
{
int i = 0,j = 0;
for(i = 0;i < 3;i++){
for(j = 0;j < 3;j++){
*(p2[j]+i) = *(p1[i]+j);
}
}
}
扩展资料:
函数指针的声明方法为:
返回值类型 ( * 指针变量名) ([形参列表]);
其中,“返回值类型”说明函数的返回类型,“(指针变量名 )”中的括号不能省,括号改变了运算符的优先级。若省略整体则成为一个函数说明,说明了一个返回的数据类型是指针的函数,后面的“形参列表”表示指针变量指向的函数所带的参数列表。例如:
int func(int x); /* 声明一个函数 */
int (*f) (int x); /* 声明一个函数指针 */
f=func; /* 将func函数的首地址赋给指针f */
或者使用下面的方法将函数地址赋给函数指针:
f = &func;
赋值时函数func不带括号,也不带参数,由于func代表函数的首地址,因此经过赋值以后,指针f就指向函数func(x)的代码的首地址。
参考资料: