文章前言:
我们讨论C语言和C++再对两个变量值的交换问题上其实是在讨论C语言和C++在进行参数传值
方式上的区别。
一.准备知识:
- C++的引用
- C语言指针
- 定义
swap
交换函数
二.利用指针的方式交换两个变量的值
一.指针的方法口诀:
实参传地址,形参指针收。
(1).实参调用接口:传地址
swap(&i, &j);
(2).形参接收接口:指针收
void swap(int *p1, int *p2)
(3).完整代码:
#include<iostream> using namespace std; void swap(int *p1, int *p2) { int temp; temp = *p1; *p1 = *p2; *p2 = temp; } int main() { int i,j; printf("input i and j :\n"); scanf("%d%d", &i, &j); printf("after swap the values:\n"); swap(&i, &j); printf("%d%2d", i, j); return 0; }
执行结果:
三.利用引用的方式交换两个变量的值:
一.引用[引用即别名]的方法口诀:
实参传变量,形参别名收
(1).实参调用接口:传递变量
swap(i, j);
(2).形参接收接口:别名收
void swap(int &p1, int &p2)
(3).完整代码:
#include<iostream> using namespace std; void swap(int &p1, int &p2) { int temp; temp = p1; p1 = p2; p2 = temp; } int main() { int i,j; printf("input i and j :\n"); scanf("%d%d", &i, &j); printf("after swap the values:\n"); swap(i, j); printf("%d%2d\n", i, j); return 0; }
执行结果:
四.引用和指针传递值的区别:
- C++用引用的方式传值更多,因为引用是不占内存空间的。
- C语言用指针的方式传值更多,但是指针耗内存空间。
- 引用变量和变量是同时发生变化的。