c语言二维数组函数参数 c语言 二维数组 函数

C语言中如何将二维数组作为函数的参数传递在C语言中可以用二维数组作为实参或者形参 。
1、函数中用二维数组作为形参,函数声明中可以指定所有维数的大小 , 也可以省略第1维的维数如:
void f(int array[3][10]); //正确
void f(int array[][10]);//正确
上面的两种二维数组形参表示都是正确的 。
2、函数中用二维数组作为形参,不能把第2维或者更高维的大小省略 , 如下面的定义是不合法的:
void f(int array[][]); //错误
因为从实参传递来的是数组的起始地址 , 在内存中按数组排列规则存放(按行存放) , 而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列,不能只指定一维而不指定第二维,下面写法是错误的:
void f(int array[3][]);//错误
3、二维数组作为实参传递时,必须保证实参第2维的维数与形参第2维的维数相同,因为必须要保证形参和实参的数据类型一致 。比如定义如下函数:
void f(int array[][10]);
可以将如下数组传递给函数f 。
int a[2][10] = {1,2,3,4};
int b[4][10] = {1};
c语言中怎么用二维数组作为函数参数二维数组作为函数参数,实参可以直接使用二维数组名,在被调用函数中对形参数组定义可以指定所有维数的大小,也可以省略第一维的大小说明,如:
它们是合法且等价,也可以使用如下形式:
但不能省略第二维的大小,如下面的定义是不合法的,编译时会出错:
因为从实参传递来的是数组的起始地址,如果在形参中不说明列数,编译器将无法定位元素的的位置 。
C语言中如何将二维数组作为函数的参数传递?函数原型 type fun (type (name*)[size])\x0d\x0a \x0d\x0atype是你要定义的类型,fun是函数名,name是在函数中二维数组的名字,\x0d\x0asize是二维数组第2维的长度 。\x0d\x0a这样调用这个函数只需要把二维数组函数名传递就可以了 。
C语言 二维数组做函数参数#include
stdio.h
int
main()
{
void
【c语言二维数组函数参数 c语言 二维数组 函数】average(float
*p,float
*p1,int
n);
float
score[3][4]={{65,67,70,80},{80,87,90,81},{90,99,100,98}};
average(score[0],score[2][3],12);
return
0;
}
void
average(float
*p,float
*p1,int
n)
{
float
sum=0;
for(;p=p1;p++)
{
sum+=(*p);
}
printf("\t%5.2f",(sum/n));
}
在你给出c语言二维数组函数参数的程序有两处错误
1 , average(*score,12);
这句中你c语言二维数组函数参数的本意是传输score【0】【0】的地址
但是*score是不行得
2,for(;p=(p+n-1);p++)这句中
p是指向score【】【】的指针
p++是p向后移时候
(p+n-1)已不再指向score【2】【3】这个数组的末位置
关于c语言二维数组函数参数和c语言 二维数组 函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读