C++学习笔记(四)——关于数组作为函数参数的值传递和引用传递
来源:互联网 发布:电视机顶盒网络设置 编辑:程序博客网 时间:2024/05/22 00:51
1.首先,数组作为函数参数和普通的参数是有区别的,我们知道普通的参数如同void insert(int a,int b)之类的传递分为值传递,指针传递,指针值的传递,引用传递,它们的参数的传递是将实参的值赋给形参。但是在数组中,值传递就是指针地址的传递,对于数组来说却是一个例外,因为数组的数据太多了,将其一一赋值既麻烦又浪费空间,所以数组作为参数传递给函数的只是数组首元素的地址,函数在需要用到后面元素时再按照这个地址和数组下标去查找。所以,函数调用的数组会对本身的数组造成影响,这点和值传递是不同的。
同时,作为函数形参的数组和指针可以互换,这种转换仅限于函数形参的声明。这是一种便利,传递时数组会蜕变为指针,事实上数组从来没有传入过函数。eg:以下3个声明是等价的
void insert(int *); void insert(int []); void insert(int [10]);
数组长度不是参数类型的一部分。函数和编译器都不知道传统给它的数组的长度的大小。
2.如果我们要传入指定长度数组,又该怎么办呢?
我们可以将参数声明为数组的引用,此时,数组长度成为形参和实参的一部分。
eg:void insert( int (&arr)[10])
3.关于对象数组
0 0
- C++学习笔记(四)——关于数组作为函数参数的值传递和引用传递
- C或C++中函数的参数传递——值传递、指针传递、引用传递
- 彻底搞定C指针-——第五篇:函数参数的传递(值传递、地址传递、引用传递)
- (转载) C语言技巧:怎样把数组作为参数传递给函数?(值传递和指针传递)
- Oracle数据库学习笔记四——存储过程的值传递和引用传递
- 【从C到C++学习笔记】引用/const引用/引用传递/引用作为函数返回值/引用和指针的区别
- (四)函数的参数传递——值传递
- 指针和引用作为函数传递参数
- [学习笔记]二位数组作为函数参数传递剖析
- 关于二维数组作为参数传递给函数的问题
- [C++]关于指针作为函数参数传递
- [C++]关于指针作为函数参数传递
- 二维数组作为函数参数传递(C++)
- 《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用
- 《从零开始学Swift》学习笔记(Day 20)——函数中参数的传递引用
- 数组作为函数参数的传递
- 数组作为函数的参数传递
- 数组作为函数参数的传递方法
- sqlalchemy is important(2)
- 我的一点产品心得
- leetcode--Two Sum
- uva 1440
- mybastis知识总结(五)事物管理
- C++学习笔记(四)——关于数组作为函数参数的值传递和引用传递
- Decorator(装饰者模式)
- HDOJ 分拆素数和 2098(素数打表)
- FatMouse' Trade hdu 1009
- Win7系统声卡驱动正常但电脑没声音 扬声器和线路输入“未插入”
- 关于ViewPagerIndicator的学习和总结
- 在Eclipse中设置中文JavaDOC
- php循环控制break、continue语句、goto语句和php常量
- 深入浅出学Shiro(一)--登录认证