用C语言实现两变量内容交换的N种方法

本文探讨了使用C语言进行两变量内容交换的不同方法,包括创建临时变量的传统方式,通过传址调用改进,以及利用位运算巧妙实现交换,同时指出了加减法和乘除法交换可能存在的问题,如溢出、精度损失和除数为零的情况。
摘要由CSDN通过智能技术生成

一:创建变量实现交换

1.#include <stdio.h>
int main()
{
  int a = 10;
  int b = 20;
  int c;
  printf("before change:a=%d  b=%d\n",a,b);
  c = a;
  a = b;
  b = c;
  printf("after change:a=%d  b=%d\n",a,b);
  return 0;
}//可成功运行

//如使用函数调用,结果则不发生改变

void swap(int x,int y)

{int temp;        /*该错误属于运行式错误,

temp=x;             形式参数在内存中创立了新的空间,,

x=y;                    运行调用函数后,只改变了x,y的地址空间内容,

y=temp;             而实参a,b的实际内容却并未改变。*/

}

2.改传值调用为传址调用

</pre></p><pre name="code" class="cpp">void swap(int *p1,int *p2)
{
int temp=*p1;
*p1=*p2;
*p2=temp      
}//通过指针改变了变量的内容并未改变变量地址

3.利用指针通过改变变量的地址实现内容交

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值