栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

将两个变量的值互相交换

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将两个变量的值互相交换

#include 
void Swap(int* pa, int* pb)
// 这个函数定义语句里的int* pa和int* pb叫做形式参数(形参)
// 形式参数当函数调用完成之后就自动销毁了,所以形式参数只在函数中有效。
// 所以形式参数的生命周期和局部参数的生命周期一样。
// 形式参数实际上是一份实际参数的临时拷贝。
// Swap这个咱创建的函数是不需要给main函数返回一个值的,只要把a,b的值互换就行
// 那么不需要返回一个值,那咱创建的函数类型就用viod的就行。
// 还有,这里一定要用指针变量,指针变量*pa,*pb可以直接读取a,b空间的地址
// 那么对指针变量*pa,*pb进行操作就是对a,b进行操作。而下面的操作就不行
//
// void Swap2(intx,inty)
// {
//   int z=0;
//   z=x; 
//   x=y;
//   y=z;
// }
// 因为这里intx和inty是又重新创建了两个空间,然后把a,b的内容放到新建的空间里
// 但是因为x,y是另外的两个空间,它俩的空间地址与a,b的空间地址完全不同
// 所以对x,y进行操作是无法影响到a,b的空间内容的
//
{
	int z = 0;//注意,这里的z一定要是变量
	z = *pa;//因为这里的*pa或者*pb是在应用变量a,b。
	*pa = *pb;//那么就可以完全把*pa或者*pb当作变量a,b。
	*pb = z;//只有同一类型的(如都是变量)才可以相互赋值。
}               //而变量与指针之间就不可以相互赋值。
int main()
{
	int a = 10;//先给a创建了一个空间,然后空间里内容为10
	int b = 20;//先给b创建了一个空间,然后空间里内容为20
	printf("交换之前:a=%d,b=%dn", a, b);
	Swap(&a, &b);
        //这个调用函数叫传址调用,传递的是变量的地址。
        //这个函数调用语句里的&a和&b叫做实际参数(实参)真实传递给了函数Swap两个参数。
        //若是这个样子:Swap(a,b)。那这个调用函数叫传值调用,传递的是变量的值
        //实参可以是:常量,变量,表达式,函数。无论是什么都要保证传递的是一个确定的值。
	printf("交换之后:a=%d,b=%dn", a, b);

	return 0;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/302758.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号