C语言 您所在的位置:网站首页 c语言temp交换 C语言

C语言

2024-06-06 11:47| 来源: 网络整理| 查看: 265

交换 一:值传递 #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 实验室设备网 版权所有