我是靠谱客的博主 时尚小蝴蝶,这篇文章主要介绍利用swap函数理解值传递、地址传递,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream> using namespace std; int a = 1, b = 2; void swap(int a, int b); //pass by value void swap(int a, int b) { int temp; temp = a; a = b; b = temp; cout << "pass by value: a" << a << " b" << b << endl; } void swap(int* a, int* b); //pass by address void swap(int* a, int* b) { int temp; temp = *a; *a = *b; *b = temp; cout << "pass by address: a" << *a << " b" << *b << endl; } void main() { cout << "initial: a" << a << " b" << b << endl; swap(a ,b); cout << "middle: a" << a << " b" << b << endl; swap(&a, &b); cout << "final: a" << a << " b" << b << endl; }

执行结果:

据运行结果可看出:
值传递只是在局域中将两者的值交换,并没有改变全局变量ab的值。
而地址传递则是交换两变量的地址,交换完成后a和b在全局中的值也交换。

可以这样理解:
值传递传递的只是一个样本信息,令主函数按照传递的这个实参的样子来执行相应的操作,但原实参并没有发生改变也并没有被操作,即主函数仿照实参(样本)的样子又构造(或找到)了一个一模一样的数据,对这个非样本的数据进行操作
而地址传递则是主函数直接对传递过来的参数执行操作。

总结:值传递没有直接对原数据(传递过来的数据)进行处理。
传递过来的参数在值传递中只是一个样本,而在地址传递中则是实际操作对象。

最后

以上就是时尚小蝴蝶最近收集整理的关于利用swap函数理解值传递、地址传递的全部内容,更多相关利用swap函数理解值传递、地址传递内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部