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://lswzjz.com/article/csipgh.html