c语言中怎么用二维数组作为函数参数

Python016

c语言中怎么用二维数组作为函数参数,第1张

二维数组作为函数参数,实参可以直接使用二维数组名,在被调用函数中对形参数组定义可以指定所有维数的大小,也可以省略第一维的大小说明,如:

它们是合法且等价,也可以使用如下形式:

但不能省略第二维的大小,如下面的定义是不合法的,编译时会出错:

因为从实参传递来的是数组的起始地址,如果在形参中不说明列数,编译器将无法定位元素的的位置。

#include

<stdio.h>

int

main()

{

void

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<=p1p++)

{

sum+=(*p)

}

printf("\t%5.2f",(sum/n))

}

在你给出的程序有两处错误

1,average(*score,12)

这句中你的本意是传输score【0】【0】的地址

但是*score是不行得

2,for(p<=(p+n-1)p++)这句中

p是指向score【】【】的指针

p++是p向后移时候

(p+n-1)已不再指向score【2】【3】这个数组的末位置