c 数组做为形参时 该参数退化为指针
来源:互联网 发布:linux有ping命令吗 编辑:程序博客网 时间:2024/05/21 17:37
当数组做为函数的形参的时候,该参数退化为指针,并且是无法直接求得数组的大小。
传数组给一个函数,数组类型自动转换为指针类型,因而传的实际是地址。
void func(int array[10])
void func(int array[])
void func(int *array)
所以以上三种函数声明完全等同。
实际情况是,数组做参数,完全无法按值传递。这是由C/C++函数的实现机制决定的。
通常计算数组大小的方式如下:
int len = sizeof(arr)/sizeof(type)
利用总长度和单个元素的长度关系得到数组的长度
但做为形参后,sizeof(arr)的长度总为4,即一个指针的长度。
为此,有两种方法来解决这个问题:
方法1.
参数传递的时候,直接加上一个参数做为数组的长度
方法2.(是错误的)
int *p = a[0];
int iLen = 0;
while(p != NULL)
{
iLen++;
*p++;
}
2 0
- c 数组做为形参时 该参数退化为指针
- 数组做参数退化为指针
- 数组做函数参数退化为指针
- 数组作为参数时,退化为指针。
- 数组退化为指针
- C语言中,数组名作为参数传递给函数时,退化为指针
- C语言中,数组名作为参数传递给函数时,退化为指针
- C语言中,数组名作为参数传递给函数时,退化为指针
- 数组名作为函数参数时会退化为指针
- 数组名作为函数参数时,退化为指针
- 当数组作为函数的参数进行传递时,该数组自动退化为同类型的指针!
- 参数传递时数组引用保护数组退化为指针
- 参数传递时数组引用保护数组退化为指针
- C/CPP点滴积累—数组做函数参数退化为指针
- 【面试题三】c数组做为参数退化的问题,二维数组中的查找
- 以数组作为函数参数退化为指针
- C/C++中数组名退化为指针的情况
- 指针数组做函数参数的退化
- GDI+的使用
- SharePoint使用BCS开发你第一个应用程序(四)
- 头文件 string.h cstring string 区别
- 真实需求:关于excel模板的导入导出
- Oracle10g Physical DataGuard 详细搭建过程
- c 数组做为形参时 该参数退化为指针
- cloudstack在centos6.5下的安装与配置
- POJ 1625 自动机
- SAP BASIS系统管理相关知识
- Android开发之InstanceState
- UnsupportedMimeTypeException about Jsoup
- 什么是关系型数据库
- 预览版Interflow 旨在增强信息安全社区反应速度
- DevExpress经典案例赏析:AutoGRAPH.NET交通监测系统