C语言中,怎样不用中间变量而互换两个变量的值呢?

 我来答
东师陈老师
高粉答主

2018-03-30 · 每个回答都超有意思的
知道大有可为答主
回答量:1.5万
采纳率:41%
帮助的人:1324万
展开全部

有两种方式可以不使用中间变量,交换同类型的变量a,b的值:
1 .使用加法操作
a+=b;
b=a-b;
a -= b;

2 .使用异或操作:
a^=b;
b^=a;
a^=b;

C语言运算符是说明特定操作的符号, 它是构造C语言表达式的工具。C语言的运算异常丰富,除了控制语句和输入输出以外的几乎所有的基本操作都为运算符处理。

除了常见的三大类,算术运算符、关系运算符与逻辑运算符之外,还有一些用于完成特殊任务的运算符,比如位运算符

大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
灿烂d夏天
2011-09-01
知道答主
回答量:13
采纳率:0%
帮助的人:9.6万
展开全部
对于整数的确可以像楼上几个同学说的进行交换,但是这只是对于整数这个特殊情况,对于一般意义的量,比如指针类型,除非深入了解各种变量的计算机内部表示,否则只能通过中间变量来交换两个变量的值。而且从效率的角度来说,通过一个中间变量交换只是增加了一个空间开销,即使是两个整数交换的情况,通过中间变量交换也是最明智的选择,因为对整数交换的特殊方法只能注定程序的运行效率不高。
这个问题提的有想法。但是事实是目前我们实现交换两个变量的最好方法就是通过一个中间变量,虽然对于某些变量有些特殊的技巧使它们不通过中间变量实现,但是运算量大,代价远不如通过中间变量。

参考资料: 《C程序设计语言》《深入理解计算机系统》

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风若远去何人留
2015-12-31 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450126
专业C/C++软件开发

向TA提问 私信TA
展开全部
有两种方式可以不使用中间变量,交换同类型的变量a,b的值:
1 使用加法操作。
a+=b;
b=a-b;
a -= b;

2 使用异或操作:
a^=b;
b^=a;
a^=b;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pfj381162127
2011-08-31
知道答主
回答量:34
采纳率:0%
帮助的人:27.5万
展开全部
我来告诉你 ,可以这样设计
假如有A=1,B=2;
然后想交换值,为
A=B;
B=A;
即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
松甜恬0Je4ba
2011-08-28 · TA获得超过2.6万个赞
知道大有可为答主
回答量:7475
采纳率:100%
帮助的人:3414万
展开全部
比如说:
a b
a = a+b;
b = a-b;
a = a-b;
例如:
a=5,b=3;
a = a+b =8;
b = a -b = 8-3 = 5;
a = a-b = 8 -5 =3
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式