正文
c语言往函数内传二维数组 c语言二维数组作为参数传入函数
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
c语言函数怎么传入一个二维数组
这样传:
函数声明:Func(变量类型 *[二维数组的列长] arry);
char arry[][4] ;
Func(arry);
C语言中如何将二维数组作为函数的参数传递?
函数原型 type fun (type (name*)[size])\x0d\x0a \x0d\x0atype是c语言往函数内传二维数组你要定义的类型c语言往函数内传二维数组,fun是函数名c语言往函数内传二维数组,name是在函数中二维数组的名字,\x0d\x0asize是二维数组第2维的长度。\x0d\x0a这样调用这个函数只需要把二维数组函数名传递就可以c语言往函数内传二维数组了。
C语言中 指针做函数参数传递二维数组
C语言中
指针做函数参数传递二维数组有两种基本方法c语言往函数内传二维数组:
1、传递“数组指针”
#include stdio.h
void output( int (*pa)[3], int n )//这个函数只能输出n行3列c语言往函数内传二维数组的二维数组
{
int i,j;
for( i=0;in;i++ ){
for( j=0;j3;j++ )
printf("%d ", pa[i][j] );
printf("\n");
}
}
void main()
{
int a[2][3]={
{1,2,3},
{4,5,6}
};
output(a,2);
}
2、传递“指针数组”
先将二维数组的行指针存储到一个指针数组中c语言往函数内传二维数组,再将指针数组传递到子函数中去。
#include stdio.h
void output( int *pa[], int row,int col ) //这个函数更通用c语言往函数内传二维数组,但调用前,要做好准备工作。
{
int i,j;
for( i=0;irow;i++ ){
for( j=0;jcol;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;i2;i++ )
pa[i]=a[i];
output(pa, 2, 3);
}
二维数组怎么在函数间传递
在C语言中可以用二维数组作为实参或者形参。
1、函数中用二维数组作为形参c语言往函数内传二维数组,函数声明中可以指定所有维数的大小c语言往函数内传二维数组,也可以省略第1维的维数如c语言往函数内传二维数组:
1
2
void f(int array[3][10]); //正确
void f(int array[][10]); //正确
上面的两种二维数组形参表示都是正确的。
2、函数中用二维数组作为形参c语言往函数内传二维数组,不能把第2维或者更高维的大小省略,如下面的定义是不合法的c语言往函数内传二维数组:
1
void f(int array[][]); //错误
因为从实参传递来的是数组的起始地址,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:
1
void f(int array[3][]); //错误
3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致。比如定义如下函数:
1
void f(int array[][10]);
可以将如下数组传递给函数f。
1
2
int a[2][10] = {1,2,3,4};
int b[4][10] = {1};
关于c语言往函数内传二维数组和c语言二维数组作为参数传入函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。