c++ 中在形参与实参之间的值传递

主要是对比直接传递与引用类型、指针类型之间的区别。

 1 #include <iostream>
 2 using namespace std;
 3
 4 class MyClass
 5 {
 6 public:
 7     int a;
 8     void method();
 9 };
10 void MyClass::method()
11 {
12     cout<<"the last value of class:a after fun:"<<a<<‘\n‘;
13 }
14
15     void fun1(MyClass);
16     void fun2(MyClass*);
17     void fun3(MyClass&);
18 int main()
19 {
20     MyClass myclass;
21     myclass.a=10;
22     fun1(myclass);
23     cout<<" the initial value of class:a after fun1:  "<<myclass.a<<‘\n‘;
24     myclass.a=10;
25     fun2(&myclass);
26     cout<<" the initial value of class:a after fun2:  "<<myclass.a<<‘\n‘;
27     myclass.a=10;
28     fun3(myclass);
29     cout<<" the initial value of class:a after fun3:  "<<myclass.a<<‘\n‘;
30     system("pause");
31 }
32 void fun1(MyClass mc)
33 {
34     mc.a=40;
35     mc.method();
36 }
37 void fun2(MyClass* mc)
38 {
39     mc->a=60;
40     mc->method();
41 }
42 void fun3(MyClass&mc)
43 {
44     mc.a=80;
45     mc.method();
46 }

参照:http://www.cnblogs.com/wackelbh/archive/2009/12/29/1984064.html

时间: 2024-10-27 06:38:48

c++ 中在形参与实参之间的值传递的相关文章

[C++程序设计]有关形参与实参,及返回值说明

有关形参与实参的说明:(1) 在定义函数时指定的形参,在未出现函数调用 时,它们并不占内存中的存储单元,因此称它们是 形式参数或虚拟参数,表示它们并不是实际存在的数据,只有在发生函数调用时,函数max中的形参才被分配内存单元,以便接收从实参传来的数据. 在调用结束后,形参所占的内存单元也被释放 (4) 实参与形参的类型应相同或赋值兼容.如果实参为整型而形参为实型,或者相反,则按不同类型数值的赋值规则进行转换.例如实参a的值为3.5,而形参x为整型,则将3.5转换成整数3,然后 送到形参b.字符型

Backbone中父子view之间的值传递

backbone中,使用最多的莫过于在view中进行操作,如模板的渲染以及事件函数的定义.为了提高代码的可维护性,一般地我们会写多个视图即view,将界面按照功能的不同进行模块化划分,模块与view一一对应. 首先,我们会定义一个父view,在view中控制不同子view的渲染,子view之间尽量不产生联系.这样,代码之间的耦合度会降低很多,模块的功能明确化,同时降低了开发的难度.笔者最近在项目中遇到父子view传值问题,学习到了一个知识点,比较简单易懂.主要想分享两个内容:1.父子view是如

通过$broadcast或$emit在子级和父级controller之间进行值传递

1 通过$broadcast或$emit在controller之间进行值传递,不过这些controller必须是子级或者父级关系, 2 $emit只能向父级parent controller传递事件event与数据data,$broadcast只能向子级child controller传递event与data,$on用于接收event与data. 3 <script> 4 var myapp=angular.module('myapp',[]); 5 myapp.controller('Sel

形参与实参之间传值的问题(复习笔记)

方向:只能由实参传向形参,形参不能传递给形参. 传值:形参发生改变,实参不改变.真个相当于将对象在内空间存放的值copy了一下传给实参! 传地址:传地址是一种特殊的传值. 传地址值(传引用):是真正以地址的方式在传参数,这是形参和实参是同一个对象,才能真正操作实参! 主调函数中可以直接改变变量的值,用函数后只是传值要传地址值操作! 主函数中的传值理解: int *p1,*p2,a,b; a=1; b=2; *p1=&a;//这是a和p1才是等价的 p2=p1;//相当于传地址 *p2=*p1;/

关于java中的形参和实参的区别-----转载

首先纠正下java2000的第一个错误说法:"java里不叫这个,而是叫传值和传对象.".引用jiabobber的话:形参就是形式上的参数啊,实参就是实际的参数啊,其实各种语言形参实参都一样的概念的吧. jiabobber的这句话是对的,实参,形参是程序设计语言中的通用概念,并不是只有C,C++有而JAVA没有,也不叫传对象; 直白的讲,形参是形式上的参数,实参是实际的参数;形参只是对实参的一种抽象类型描述,只是声明一个函数(方法)能接受什么类型的实参,而不确定接受的实参具体内容是多少

Pyhton函数篇(一)之函数中的形参与实参

1:什么是函数 函数其实就是带名字的代码块,用于完成一些具体的工作.如果我们在写一段程序的时候,需要多次用到同样的一个功能,如果每次都要重复写相同的代码,不仅会增加我们的代码量,更会让我们写出的代码让别人看起来觉得很low,而如果我们把功能作为一个代码块封装在一个函数里,每次仅需要调用这个函数,是不是就很方便了?这就是函数的意义所在 1.1 函数的定义方式 函数的定义使用def关键字,如下: def user(): def 关键字后面加函数名定义函数,定义以冒号结尾 """内

关于Java中的形参和实参的区别

形参出现在函数定义中,在整个函数体内都可以使用,离开该函数则不能使用. 实参出现在主调函数中,进入被调函数后,实参变量也不能使用. 形参和实参的功能是作数据传送.发生函数调用时,主调函数把实参的值传送给被调函数的形参从而实现主调函数向被调函数的数据传送. 1.形参变量只有在被调用时才分配内存单元,在调用结束时, 即刻释放所分配的内存单元.因此,形参只有在函数内部有效. 函数调用结束返回主调函数后则不能再使用该形参变量. 2.实参可以是常量.变量.表达式.函数等, 无论实参是何种类型的量,在进行函

Android中在两个Activity之间进行数据传递

首先声明,此篇文章是我原先的CSDN上面的博客,由于种种原因,不想再使用csdn博客,于是就将其文章搬至现在的cnblog. 大家好,今天我终于开通了自己的博客,很开心能和大家共同分享我的学习经验,希望我们可以共同进步哦,废话不多说了,看一下我今天学习android遇到的一些问题和解决办法吧 首先先把我使用的eclipse的版本贴出来:adt-bundle-windows-x86-20130917 这是一个集成的版本,不需要配置SDK和ADT,但是需要手动配置JDK哦! 其实,不同版本的ecli

UI中的界面之间的值传递 &lt;二&gt;

从后往前传 —— 代理传值 代理传值 (代理是前一个界面, 协议在后一个界面写, 后一个界面是委托方, 前一个界面是被委托方.) 一 : 在后一个界面定义协议 (定义一个用于传值的方法, 而且方法必须要有参数, 参数类型要与所传数据的类型保持一致) 二 : 在后一个界面定义代理属性, 用来保存代理对象. 三 : 设置后一个界面的代理 -- 在前一个界面进入后一个界面之前, 设置前一个界面为后一个界面的代理. 四 : 前一个界面服从协议. 五 : 前一个界面实现协议中的方法. 六 : 后一个界面让