C语言中swap函数的使用注意事项-创新互联
                                            先给出错误示范

#includevoid swap(int a,int b)
{
	int temp=a;
    a=b;
	b=temp;
}
int main()
{
	int a,b;
	int temp;
	a=1;
	b=2;
	printf("a=%d b=%d\n",a,b);
	swap(a,b);
	printf("a=%d b=%d",a,b);
	return 0;
} 大多初学者使用时都会犯这样的错误,那么为什么输出来的两次中a,b的值并没有发生交换呢
这里是因为如上的交换我们只改变了在swap函数里的值,也就是只改变了形参,待其回到main即会复原,所以我们需要用指针把两个int的地址传过去,如下
#includevoid swap(int *a,int *b)
{
	int temp=*a;
	*a=*b;
	*b=temp;
}
int main()
{
	int a,b;
	int temp;
	a=1;
	b=2;
	printf("a=%d b=%d\n",a,b);
	swap(&a,&b);
	printf("a=%d b=%d",a,b);
	return 0;
} 如果不使用指针,我们也可以把输出放在swap函数内部,如下:
#includevoid swap(int a,int b)
{
	int temp=a;
	a=b;
	b=temp;
	printf("a=%d b=%d",a,b);//改变后 
}
int main()
{
	int a,b;
	int temp;
	a=1;
	b=2;
	printf("a=%d b=%d\n",a,b);//改变前 
	swap(a,b);
	return 0;
} 以上两种方法即可帮助我们成功交换两个值
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:C语言中swap函数的使用注意事项-创新互联
文章出自:http://www.cqwzjz.cn/article/csipgh.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 