文章前言:
我们讨论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语言用指针的方式传值更多,但是指针耗内存空间。
- 引用变量和变量是同时发生变化的。