1、传参规则:

a.当二级指针作为函数形参时,能作为函数实参的是二级指针,指针数组,一级指针的地址
b.当数组指针作为函数形参时,能作为函数实参的是二维数组,数组指针
c.当二维数组作为函数形参时,能作为函数实参的是二维数组,数组指针
d.当指针数组作为函数形参时,能作为函数实参的是指针数组,二级指针,一级指针的地址

2、实例验证:

#include <stdio.h>
#include <stdlib.h>void fun1(int **pp)
{printf("fun1\n");
}
void fun2(int(*a_p)[5])
{printf("fun2\n");
}
void fun3(int t_d_a[][5])
{printf("fun3\n");
}
void fun4(int *p_a[5])
{printf("fun4\n");
}int main()
{int *p_a[5];          //指针数组int **pp = NULL;      //二级指针int *p = NULL;        //一级指针int t_d_a[5][5];      //二维数组int a[5];             //一维数组int(*a_p)[5] = &a;    //数组指针fun1(p_a);fun1(pp);fun1(&p);//fun1(t_d_a);//fun1(a_p);printf("\n");//fun2(p_a);//fun2(pp);//fun2(&p);fun2(t_d_a);fun2(a_p);printf("\n");//fun3(p_a);//fun3(pp);//fun3(&p);fun3(t_d_a);fun3(a_p);printf("\n");fun4(p_a);fun4(pp);fun4(&p);//fun4(t_d_a);//fun4(a_p);printf("\n");system("pause");return 0;
}

以上代码我放开注释的任意一条语句,都会报错为形参与实参的类型不兼容。
PS:调试环境为vs2013

二级指针、数组指针、二维数组、指针数组作为函数形参时可传入的实参相关推荐

  1. java ArrayList 套数组,二维不等长数组

    ArrayList 除了装填普通类型外,还能为数组类型.用法是: ArrayList<ArrayList<Double>> arr = new ArrayList<> ...

  2. [转载] pythonjson构建二维数组_python二维键值数组生成转json的例子

    参考链接: python json 10: Datetime与json的相互转化 python二维键值数组生成转json的例子 今天出于需要,要将爬虫爬取的一些数据整理成二维数组,再编码成json字符 ...

  3. pythonjson构建二维数组_python二维键值数组生成转json的例子

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组内存大小计算 | 指针跳转步长问题 )

    文章目录 一.二维数组内存大小计算 二.二维数组内存大小意义 一.二维数组内存大小计算 给定一个二维数组 : 该 二维数组 中有 444 个 一维数组 , 每个一维数组有 101010 个 char ...

  5. 【C 语言】二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )

    文章目录 一.二维数组 1.二维数组声明及初始化 2.二维数组遍历 3.二维数组排序 二.完整代码示例 一.二维数组 前几篇博客中 , 介绍的是指针数组 ; 指针数组 的 结构特征 是 , 数组中的每 ...

  6. linux c语言 malloc动态分配指针,C语言malloc函数为一维,二维,三维数组分配空间...

    c语言允许建立内存动态分配区域,以存放一些临时用的数据,这些数据不必在程序的声明部分定义,也不必等到函数结束时才释放,而是需要时随时开辟,不需要时随时释放,这些数据存储在堆区.可以根据需要,向系统申请 ...

  7. 用指针来表示二维数组的方法

    1.类型说明 int *b;  //定义一个int型指针变量 int *p[3];   //定义一个int型指针数组的变量 int (*c)[3]  和  int (*)[3]:   //定义一个指向 ...

  8. C语言学习之有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值

    有一个3X4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值. int main(){int a[3][4];int i,j,*p;//p是 int *型指针变量printf("请 ...

  9. 【C语言进阶深度学习记录】三十 二维数组与二维指针

    文章目录 1 二维指针(指向指针的指针) 2 二维数组 3 二维数组的类型 3.2 如何动态申请二维数组 4 总结 1 二维指针(指向指针的指针) 指针的本质是变量 指针的指针是保存指针变量的地址.如 ...

最新文章

  1. Codeforces Round #645 (Div. 2)(AB)
  2. java添加锁_java – 如何在这种情况下添加锁?
  3. java执行命令行命令
  4. hj212协议如何和php通讯,5G/4G边缘计算网关如何实现HJ212协议上报
  5. mybatis工作笔记002_mybatis中如果返回的结果没有的话默认返回null的list_但可启用returnInstanceForEmptyRow_返回为list不为null但为0条
  6. python下使用pymongo操作mongodb
  7. macOS Monterey Finder 的新功能
  8. python mql4跟单_MT4本地跟单EA设置教程 -
  9. xp下固态硬盘测试软件,XP真的老矣?SSD实战XP/Win7/Win8系统
  10. Struts的增删改查
  11. 【云计算学习教程】软件(程序)是什么?
  12. 笔记本计算机摄像头怎么打开,笔记本都有摄像头吗_笔记本电脑摄像头怎么打开-win7之家...
  13. minitools在win10上安装失败
  14. 调用Android原生裁剪方式裁剪图片并保存
  15. 投票动态代理proxy案例(java)
  16. Unicode(ASII)控制字符的含义
  17. 从输入 URL 到浏览器接收的过程中发生了什么事情
  18. 杭州电子科技大学acm--2000
  19. 又一所“一流大学”北京航空航天大学和华为签约
  20. SDH系统实现PCM信号传输以及时分复用的simulink仿真

热门文章

  1. MaxCompute客户端在windows命令行下查询中文乱码怎么办?
  2. IDE 插件新版本发布,总有一个功能帮到你——开发部署提速 8 倍
  3. 干货!Redis集群工作原理解析
  4. 这 10 行比较字符串相等的代码给我整懵了,不信你也来看看
  5. 我们已经不用AOP做操作日志了! | 原力计划
  6. 多场景下的AI疫情防控“天网”:解读云边端联动下的全栈 AI 技术
  7. “云原生全家桶“KubeSphere 如何让企业从容迈进云原生时代?
  8. IT公司老板落水,各部门员工怎么救??
  9. 云计算之基,一文带你速懂虚拟化KVM和XEN
  10. 微服务精华问答 | 微服务如何测试?