关于C++函数调用(返回)传值的思考!
来源:互联网 发布:广州恒大淘宝球员名单 编辑:程序博客网 时间:2024/06/09 18:59
今天做了一道题,不能使用全局变量,main函数不能改变,只能改变调用函数,也用不了指针,所以想了许久,查找了许多资料,把过去知道的引用实践了。
返回值只能返回一个值,但是需要的值可能需要有多了,那么我们就需要有传值,怎么把值传递到该去的位置,有三个办法。值传递,指针传递,引用传递。
1.值传递,就是main函数上的值没有变化,但是是在调用函数上的值的变化,与主函数上无关。就是调用函数已经把主函数上的值 做好了。
int fun(int a,int b){ int c=a; a=b; b=c;
cout<<a<<" "<<b; return 0;}int main(){ int a,b;cin>>a>>b; fun(a,b); return 0;}2.指针传递,意思就是有另一个名字(新的东西)指向了原先想要改变的那个值,调用函数中,如果指针变化了,想要改变的那个值也一样会改变,同样在主函数是一样的,一个地址上的值改变了,指针会变,原先的定义的名字的值也会变。等于有个东西有俩个名字,常用的大名,不常有的小名,把一个名字指向的人变了,另一个名字也是被换了。
int fun(int *p, int *q){int c = *p;*p = *q;*q = c;return 0;}int main(){int a=2, b=3;cin>>a>>b;int *p = &a, *q = &b;fun(&a, &b);//当指针上的*p,*q的值变了,指向那个地址的,a,b值同样也会变,同样,如果a,b值变,那么指针上的值也会变。return 0;}3.我感觉今天我实践的引用传递也是很重要,我开始喜欢上的这个办法。大概意思就是调用函数上的值变了,同样和指针差不多的是,main上的值也会变。
int fun(int &a,int &b){ int c=a; a=b; b=c; return 0;}int main(){ int a,b;cin>>a>>b; fun(a,b);//当调用函数上的值变化了,那么主函数上的a,b值也是变化了。 return 0;}调用函数的命名和主函数上的命名无关,即使是全局变量和局部变量一样,也是优先局部变量,所以每个函数的命名使用只在那一个限制的范围内!
关于更详细的资料的公式化的介绍:http://blog.csdn.net/the_fire/archive/2009/06/13/4267058.aspx
本文主要是自己对关于值传递的学习。
0 0
- 关于C++函数调用(返回)传值的思考!
- 关于函数返回值的一点思考
- 关于函数返回值的设计的一些思考
- 关于函数返回值作用域的一些思考
- 关于中断服务函数带来返回值的思考
- 关于C++函数思考2(C++函数返回引用和返回非引用的区别)
- 关于C语言字符串函数的思考
- 关于C语言字符串函数的思考
- <<c++primer>>返回引用的函数调用
- 关于C#间接继承的一些思考:如何修改继承函数的返回值类型
- 关于返回引用的思考
- 关于函数参数入栈的思考(函数调用约定,入栈顺序)
- C语言中函数的思考(可以返回局部变量吗)
- 关于涵数调用传值方式的若干思考
- 关于函数调用中参数传递的一些思考
- 关于C的思考
- 关于C的思考
- 关于C的思考
- android 视频开发 集成vitamio 播放rtsp m3u8 视频 有图有demo
- 使用jdbc实现简单的用户登录
- ViewPager的简单优化和实现大图轮播
- RSA算法原理(一)
- vim8.0 ubuntu 安装 && 使用vimplus安装插件
- 关于C++函数调用(返回)传值的思考!
- PHP入门概述
- 中国云计算产业2016年度点评
- Spring的InitializingBean接口
- request.getCookies()得不到设置的cookie,浏览器里却存在
- Linux用init命令关机、重启、切换模式
- simpleAdapter代码
- 《丁小柒的JavaScript大神之路》----javascript语句
- Python编码相关文章推荐