C语言 | 您所在的位置:网站首页 › c语言temp交换 › C语言 |
交换
一:值传递
#include
using namespace std;
void Swap(int x,int y)
{
int temp =x;
x=y;
y=temp;
}
int main()
{
int a=10;
int b=5;
Swap(a,b);
printf("%d,%d",a,b);
return 0;
}
运行结果: 解析:Swap(int x,int y)函数采用值传递的方式,传入的实参实际上是a和b的副本而非其本身,所以对副本的改变并不会反应到a和b本身上。 二:引用传递 #include using namespace std; void Swap(int &x,int &y) { int temp =x; x=y; y=temp; } int main() { int a=10; int b=5; Swap(a,b); printf("%d,%d",a,b); return 0; }运行结果: 解析:Swap(int &x,int &y)函数采用引用传递的方式,传入的实参实际上是a和b的应用,对应用的改变会直接反应到a和b本身上。 三:指针传递 1.改变指针本身 #include using namespace std; void Swap(int *x,int *y) { int *temp =x; x=y; y=temp; } int main() { int a=10; int b=5; Swap(&a,&b); printf("%d,%d",a,b); return 0; }运行结果:
解析:Swap(int *x,int *y)函数采用指针传递的方式,传入的实参实际上是a和b的指针的副本,而且改变的是副本本身而非其间接引用,所以不会影响的指针所指向的值,即a和b本身上。 2.改变指针的间接引用 #include using namespace std; void Swap(int *x,int *y) { int temp =*x; *x=*y; *y=temp; } int main() { int a=10; int b=5; Swap(&a,&b); printf("%d,%d",a,b); return 0; }运行结果:
解析:Swap(int *x,int *y)函数采用指针传递的方式,传入的实参虽然也是a和b的指针的副本,但是改变的是副本的间接引用,无论是指针本身还是其副本,都指向相同的值,所以这个改变会反应到a和b本身上。
|
CopyRight 2018-2019 实验室设备网 版权所有 |