怎么给函数传二维数组的指针”
1个回答
展开全部
C语言中 指针做函数参数传递二维数组有两种基本方法:
1、传递“数组指针”
#include <stdio.h>void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组{ int i,j; for( i=0;i<n;i++ ){ for( j=0;j<3;j++ ) printf("%d ", pa[i][j] ); printf("\n"); }}void main(){ int a[2][3]={ {1,2,3}, {4,5,6} }; output(a,2);}
2、传递“指针数组” 先将二维数组的行指针存储到一个指针数组中,再将指针数组传递到子函数中去。
#include <stdio.h>void output( int *pa[], int row,int col ) //这个函数更通用,但调用前,要做好准备工作。{ int i,j; for( i=0;i<row;i++ ){ for( j=0;j<col;j++ ) printf("%d ", pa[i][j] ); printf("\n"); }}void main(){ int a[2][3]={ {1,2,3}, {4,5,6} }; int i; int *pa[2]; for( i=0;i<2;i++ ) pa[i]=a[i]; output(pa, 2, 3);}
1、传递“数组指针”
#include <stdio.h>void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组{ int i,j; for( i=0;i<n;i++ ){ for( j=0;j<3;j++ ) printf("%d ", pa[i][j] ); printf("\n"); }}void main(){ int a[2][3]={ {1,2,3}, {4,5,6} }; output(a,2);}
2、传递“指针数组” 先将二维数组的行指针存储到一个指针数组中,再将指针数组传递到子函数中去。
#include <stdio.h>void output( int *pa[], int row,int col ) //这个函数更通用,但调用前,要做好准备工作。{ int i,j; for( i=0;i<row;i++ ){ for( j=0;j<col;j++ ) printf("%d ", pa[i][j] ); printf("\n"); }}void main(){ int a[2][3]={ {1,2,3}, {4,5,6} }; int i; int *pa[2]; for( i=0;i<2;i++ ) pa[i]=a[i]; output(pa, 2, 3);}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |