关于传值、传引用、传地址的一点小理解
来源:互联网 发布:汽车里程表调校软件 编辑:程序博客网 时间:2024/06/10 19:43
关于传值、传引用、传地址的一点小理解
- 传值
- 传引用
- 传地址(两种)
函数的形参可以是传值,传地址,传引用。
其中,传值(fun(string str))不可以改变要传递的变量。
int main(){ string str3="abc"; trans_X(str3); cout<<str3<<endl; return 0;}string trans_X(string str){ for(auto &c:str) { c='X'; } return str;}
结果为abc。
而传引用(fun(string &str))和传地址(fun(string *str))可以改变要传递的变量。
先来看看传引用。
int main(){ string str3="abc"; trans_X(str3); cout<<str3<<endl; return 0;}string trans_X(string &str){ for(auto &c:str) { c='X'; } return str;}
结果是XXX。
接下来是传地址。
int main(){ string str3="abc"; trans_X(&str3); cout<<str3<<endl; return 0;}string trans_X(string *str){ for(auto &c:(*str)) { c='X'; } return *str;}
结果是XXX。
其中,形参还可以是const常量,默认函数对要传进来的参数不作修改。
传常量值,fun(const string str)不能修改str变量,只能将str用于赋值。
传常量引用,fun(const string &str)不能修改str变量,只能将str用于赋值。
传顶层const指针,fun(string * const str)可以修改str指向的变量,但是不能修改str,即不能修改str的指向。
传底层const指针,fun(const string *str)不可以修改str指向的变量。
1 0
- 关于传值、传引用、传地址的一点小理解
- 关于迭代的一点小理解
- 关于面向对象的一点小理解
- 关于JAVA的传值与引用的理解
- 关于AS3中弱引用的一点理解
- 关于AS3中弱引用的一点理解(转载)
- 举例说明:传值引用与传地址引用的区别
- 地址,引用,传地址,传引用的分析
- 传参和引用的一点启示
- C#中ref和out地址传值结合QT中c++以及回调函数的一点理解
- 关于java的方法的一点小理解
- C++ 中解析关于传值、传地址、传递引用的解析
- 关于intentservice和handlerthread的一点小理解
- 关于指针的一点理解(本人小白用户)
- 引用的小理解
- 引用传地址
- [java]引用类型传的是地址
- 传值和传引用、传地址的区别是什么?
- MySQL中REGEXP正则表达式
- MATALB中的最大和最小常量
- Android 软键盘弹出时把布局顶上去,控件乱套解决方法
- subprocess.Popen(cmd)包含中文怎么办
- 使用verilog实现计数器
- 关于传值、传引用、传地址的一点小理解
- 通过串口读取mavlink数据
- matlab里实现AR人脸库2600张人脸图的分类处理
- QT中foreach的使用
- MySQL-5.6.31-winx64 .zip 安装及配置及sqlyog连接
- 纠正对Fragment Transaction BackStack的误解
- UVA140
- 对于人脸识别检测中出现遮挡问题的解决方案
- 感想总结——热烈庆祝CSDN博客排名进入前20000名