交换两个变量而不用另外开辟空间。
来源:互联网 发布:喜剧电影 知乎 编辑:程序博客网 时间:2024/04/27 03:25
面试官问:“如何交换两个变量而不用另外开辟空间。”(前提是在嵌入式系统中资源很宝贵).
答是使用位操作如下:
void swap(int a,int b)
{
a=a^b;
b=b^a;
a=a^b;
}
考官说如果a,b两个变量是占满32位,则位操作会出现溢出。
不知以下是不是正确方法。
void swap(int a,int b)
{
a=a+b;
b=a-b;
a=a-b;
}
答是使用位操作如下:
void swap(int a,int b)
{
a=a^b;
b=b^a;
a=a^b;
}
考官说如果a,b两个变量是占满32位,则位操作会出现溢出。
不知以下是不是正确方法。
void swap(int a,int b)
{
a=a+b;
b=a-b;
a=a-b;
}
- 交换两个变量而不用另外开辟空间。
- 交换两个变量而不用临时变量
- 交换两个变量而不用第三变量
- 交换两个值,而不用临时变量
- 从“交换两个变量而不用临时变量”谈起
- 从“交换两个变量而不用临时变量”谈起
- 怎样不用临时变量而交换两个值?
- 怎样不用临时变量而交换两个值?
- 15、合并两个有序数组,不另外开辟空间 JAVA
- 不用临时变量实现两个变量交换
- 不用设置第三变量,交换两个变量
- 不用第三个变量交换两个变量
- 不用第三个变量交换两个变量
- 不用额外空间,交换两个数
- 不用第三变量交换两个整数
- 不用临时变量交换两个数
- 不用中间变量交换两个double类型
- 不用临时变量交换两个数据
- 中际网络计算机(NC)
- Linux发展大事记
- 使用jspSmartUpload的下载文件的经验教训
- 个人简历
- .INF文件格式说明
- 交换两个变量而不用另外开辟空间。
- CMPP2.0 协议SP端的·NET开发
- 小型軟件公司如何做大
- 21世紀如何正確思攷及開創個人事業(轉發)
- 人生的35个好习惯(转)
- 程序員求愛技巧
- 一个小系统设计
- 公司管理的体会
- 一个公司的数据库开发规范