第九章——数组 第九节——二维数组名作为实参时函数的调用

第九章——数组 第九节——二维数组名作为实参时函数的调用

亓翎_Re-Tikara Lv5

二维数组作实参

  当二维数组作实参时,形参必须是一个行指针变量。
  例如主函数中有以下定义和函数调用语句:

1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#define M 5
#define N 3

main()
{
double s[M][N];

fun(s);

}

  则fun的首部可以是:

  • fun(double (*a)[N])
  • fun(double a[M][N])
  • fun(double a[][N])

注意

  1. 列下标不可少
  2. 系统把a处理成一个行指针
  3. 系统只为形参开辟一个存放地址的存储单元,而不是一系列单元

指针数组名作实参

  当指针数组名作实参时,形参应当是一个指向指针的指针。
  若主函数中有以下定义和函数调用语句:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#define M 5
#define N 3
main()
{
double s[M][N],*ps[M];

for(i=0;i<M;i++)
p[i]=s[i];

fun(ps);

}

  则fun的首部可以是:

  • fun(double *a[M])
  • fun(double *a[])
  • fun(double **a)
  • 标题: 第九章——数组 第九节——二维数组名作为实参时函数的调用
  • 作者: 亓翎_Re-Tikara
  • 创建于 : 2026-02-07 02:21:28
  • 更新于 : 2026-02-10 02:48:46
  • 链接: https://re-tikara.fun/Blog/posts/24f285f3/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
目录
第九章——数组 第九节——二维数组名作为实参时函数的调用