C/C++中的实参和形参
来源:互联网 发布:电路图软件下载 编辑:程序博客网 时间:2024/05/21 10:43
抄袭 于:http://www.cnblogs.com/kane0526/p/3913284.html
今天突然看到一道关于形参和实参的题,我居然不求甚解。藐视过去在我的脑海里只有一个参数的概念,对于形参和实参的区别还真的不知道,作为学习了几年C++的人来说,真的深深感觉对不起自己对不起C++老师 T。T
我觉得只要明白了值传递和地址传递,就应该能明白形参和实参的具体工作细节了。
1、值传递
实参是变量,表达式等值。
find(int x){}
y= find(z);
上面的例子中,z是实参,x是形参。x变z不变。
在值传递过程中,实参和形参位于内存中两个不同地址中,实参先自己复制一次拷贝,再把拷贝复制给形参。所以,在值传递过程中,形参的变化不会对实参有任何的影响。
2、地址传递(也称引用传递)
实参是指针。
在函数调用的时候,实参传递给你的是指针地址,地址一样也就意味着实参和形参是一样的,当你的形参发生改变时,实参也会发生改变。
find(int &x){}
y= find(z);
上面的例子中,z是实参,x是形参。z随x而改变。
3、const引用传递
find(const int &x){}
y= find(z);
上面的例子中,z是实参,x是形参。z不随x而改变。
有人就会问了,你这样做不是和值传递一样的么?NO!
仔细观察就会发现,在值传递中要进行两次拷贝,浪费内存资源是相当可耻的,const的出现有效避免了这种情况的出现,只需拷贝一次就够了。
阅读全文
0 0
- C语言中的形参和实参
- C/C++中的实参和形参
- C/C++中的实参和形参
- c++--实参和形参
- 关于C语言形参和实参
- C语言形参和实参
- C/C++中 实参和形参
- C语言中的形参和实参的定义是什么?有什么区别?
- c\c++中的形参与实参
- C语言形参和实参的陷阱
- C语言学习笔记(2)形参和实参
- C语言的形参和实参个数不一致问题
- C的形参和实参的关系
- 8.3 C语言函数的形参和实参
- C语言形参和实参的收录
- 形参与实参C
- C语言实参与形参
- 关于C语言中一,二级指针函数中的使用和c语言中和函数发生调用时,实参和形参都会占用内存吗?
- JS刷新当前页面的几种方法总结
- Python实现微信自动回复机器人
- Android studio圆形进度条 百分号跟着变
- 项目中一个Bug的解决过程
- Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
- C/C++中的实参和形参
- Elastic-Job-Lite的原理简介和使用(推荐)
- JS对象深拷贝
- [learning materials] radicals
- python传入命令行参数
- Android模糊一张图片的简单方法之RenderScript
- pycharm软件使用的基础功能设置
- js的四舍五入实现和parseInt 函数小bug
- cocosCreator 全局对象用法,不用require 直接用