码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 实参和形参 交换变量值

时间:2014-12-10 10:50:54      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:实参   形参 变量交换   c   c++   

1. 传值调用机制 ( call- by-value machanism )

     (1). 在形参位置插入的是实参的值。如果实参是变量,则插入的只是变量的值,而非变量本身。

     (2). 传值调用形参是局部变量。调用函数时,该函数的形参被初始化为实参的值。

eg:

void swap (int x, int y)

{

int temp;

temp = x;

x = y;

y = temp;

}

main()

{

int a = 1, b = 2;

cout << “a = ” << a << “b= ” << b << “\n”;

swap(a, b);

return 1;

}

运行结果:

a = 1 b = 2

a = 1 b = 2

说明:没有发生值得交换

 

2. 传引用调用机制

     (1). 替换形参的是实参的内存位置。由于程序变量是作为内存位置来实现的,所以这些内存位置就是变量。也就是说在形参位置插入的是变量本身,而不是变量的值。

     (2). 传引用调用形参是被实参的内存位置替换,故若函数体内对该内存位置有所修改,该变量也会改变。

eg:

eg:

void swap (int &x, int &y)

{

int temp;

temp = x;

x = y;

y = temp;

}

此时显示的结果:

a = 1 b = 2

a = 2 b = 1

 

针对以上两个例子详细解释:

在第一个例子中,在调用swap函数时,是将a和b的值传递给了x和y,此时,x、y相对于a、b的副本,副本的改变不会改变变量本身的值。

在第二个例子中,swap函数定义了x、y的引用,main函数调用swap时,x、y分别为a、b的引用,此时,x和a表示同一个变量,y和b表示同一个变量,当x和y发生交换时,即a和b也发生了交换,从而实现了两个变量值得交换。

C++ 实参和形参 交换变量值

标签:实参   形参 变量交换   c   c++   

原文地址:http://blog.csdn.net/a670449625/article/details/41842827

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!