【转】C:经典技巧,不用临时变量,交换变量值

【转】C:经典技巧,不用临时变量,交换变量值

C:经典技巧,交换两个变量的值
十二月 30th, 2011 § 3 comments
40;

一般交换变量值都会这样做:
void swap(int* a, int* b)
{

int temp;

temp = *a;

*a = *b;

*b = temp;

}
——————————————————————————————————————-
下面是转帖 –>
下面这段代码的精妙就在于,它没有使用临时变量,并且相对于普通的方法不容易出错。
这是一个面试题的结果,题目是,请用一段代码交换两个整数的值。
x = x ^ y ;
y = x ^ y ;
x = x ^ y ;
与此相类似的还有一种方法,下面这段代码则是我自己想到的。
x = x + y ;
y = x – y ;
x = x – y ;
(操作符‘^’代表C/C++语言中的位运算符——异或)
然而,还有一种方法:下面这种更为优雅的写法和上面第一种写法是等价的:
x ^= y ^= x ^= y ;
——————————————————————————————————————-
转自:www.limou.net

感悟:
这种方法的优点在于不使用指针,指针具有危险性。这种方法简便没有危险性。
看得出来任何微小的地方都有创新,编程的时候要多思考。

转载于:https://www.cnblogs.com/ZzzZzz/archive/2011/12/30/2307921.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/110495.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm 2021.4.14激活码_通用破解码[通俗易懂]

    pycharm 2021.4.14激活码_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • input 事件监听

    input 事件监听1、change事件,在input失去焦点才会考虑触发,它的缺点是无法实时响应,与blur事件有着相似的功能,但与blur事件不同的是,change事件在输入框的值未改变时并不会触发,当输入框的值和上一次的值不同,并且输入框失去焦点,就会触发change事件。2、input事件,需要实时检测input输入框的值的时候,就需要用到h5的新事件:input事件了,input事件可以实现对input…

  • idea激活码2019_通用破解码

    idea激活码2019_通用破解码,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 在Pycharm中使用git工具「建议收藏」

    在Pycharm中使用git工具「建议收藏」在Pycharm中使用git工具File->settings->versioncontrol->git;然后从双击.gitignore文件会让你安装git的插件,安装完成重启IED。此时你的项目应该已经在版本控制之中。所以你有提交的内容,先commit,然后选择版本库中的分支push就可以了。

  • windows根据端口号杀进程_如何通过端口号查看进程

    windows根据端口号杀进程_如何通过端口号查看进程Window根据端口号杀进程

  • c language program_language deficit

    c language program_language deficitprintf(“%d\n”,a) scanf(“%d%d”,&num1,&num2),&代表存放的是地址,scanf相当于scannerin 在同一个工程项目中,全局变量可通用,如果要A类要用的B类的全局变量num,则这样声明,externintnum,然后就可以使用了………………………………………………………………………………………….

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号