二级指针、数组指针、二维数组、指针数组作为函数形参时可传入的实参
来源:互联网 发布:python getopt函数 编辑:程序博客网 时间:2024/06/08 08:46
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
2 0
- 二级指针、数组指针、二维数组、指针数组作为函数形参时可传入的实参
- 指针数组,数组指针,二级指针,二维数组的关系
- 二级指针二维数组
- 数组作为实参传给函数的形参指针
- 数组指针,指针数组,二维数组作为参数传递给以指针的指针作为形参的函数
- 二维数组 指针数组 数组指针 二级指针
- 二级指针与二维数组
- 二维数组和二级指针
- 二维数组与二级指针
- 二级指针和二维数组
- 二维数组与二级指针
- 二维数组与二级指针
- 二级指针与二维数组
- 二维数组和二级指针
- 二维数组和二级指针
- 二维数组和二级指针
- 二维数组与二级指针
- 二维数组和二级指针
- angular.min.js:118 Error: [ng:areq] http://errors.angularjs.org/1.5.8/ng/areq?
- 热修复探究(三)
- scala进阶4-上下文界定(Context)
- layoutParams的用法
- 计算出一个字符串中最长的字符的长度
- 二级指针、数组指针、二维数组、指针数组作为函数形参时可传入的实参
- PHP是单线程的,如何应对大量的http访问?
- 55.购物流程(2)---configurable product
- ORACLE数据库备份方法
- Gym 100952D Time to go back 组合学、杨辉三角预处理组合数
- Python并发编程(2)--线程
- 升级cocoapods的Ruby镜像版本
- Notes: CPU and Memory of O.S.
- 01、查找节点