C++ 函数参数
来源:互联网 发布:json怎么用 编辑:程序博客网 时间:2024/04/28 13:26
C++函数
函数的参数传递方式:按值传递、按地址传递、按引用传递
值传递最简单,是一种单向的参数传递方式,也就是说传递过程中产生一个副本,只把实参的值传递给形参,传递完成以后副本的工作也就结束了,实参不再与形参有联系,进入函数体后整个函数生命周期内只有形参在起作用。形参在函数内的变化不会影响实参,实参的值在函数调用后不会发生改变。
如果希望被调函数改变主调函数中实参的值,可以采用按地址传递或按引用传递方式。
按地址传递时,函数定义时以指针作为函数的形参,函数调用的实参必须是指针变量或者变量的地址:
定义: void func( string *p )
调用: string str; ... func( &str );
按引用传递:
void swap( int &a, int &b);
调用 swap( val1, val2);
交换后实参val1和val2都改变了。
a 是 val1的别名,b是val2的别名,对a, b的操作就是对val1和val2的操作。
使用引用传递参数没有在内存中产生实参的副本,不需要将实参拷贝给形参。因此当参数传递的数据较大,引用传递比值传递在空间和时间上效率都更高。使用指针进行地址传递也可以改变实参,但是同样要给形参分配额外的内存单元,把地址赋值给指针变量的运算。
const引用形参能够保证参数在函数中不被修改,既保证了数据的安全,又改善了运行效率。实际上使用非常量引用作为形参,会不必要地限制传入实参的类型(必须为非const对象)。
C++ 默认参数值
函数有多个形参,带默认值的形参必须放在参数表的右部,也就是带默认值的参数右边不能有不带默认值的形参。
在函数调用时,如果省略某个实参,那么该实参右边的所有实参都必须省略。
void fun1( int, int = 1, int = 1, int = 1)
...
func1(10, , 5); // 错误
fun1(10, 1, 5); // 正确
- c可变函数参数
- C可变参数函数
- C可变参数函数
- C函数参数特性
- C函数参数传递
- C函数可变参数
- c 可变参数函数
- c语言----- 函数参数
- C函数参数传递
- [c/c++]函数参数缺省值
- [c/c++]函数参数缺省值
- C/C++ 可变参数函数
- C把函数作为参数
- [C]main 函数的参数
- c语言可变参数函数
- C函数动态参数问题
- c 语言中的函数参数
- C可变参数函数 实现
- C++ 结构体和枚举类型
- Codeforces Round #374 (Div. 2) 终场翻盘记
- java基础50题(6)
- Java抽象类abstract
- FutureTask 异步任务
- C++ 函数参数
- win10 uwp 获得焦点改变
- mfc总结一
- win10 uwp 应用转后台清理内存
- C++ 内联函数
- LNMP环境介绍
- MVC框架扩展类
- vim编辑器(三)
- 今天带你看看Android apk的打包过程。