20140626电话面试
(1)两个变量不通过中间变量如何实现互换
我是这么想的
假设2个变量是整数或者字符(字符也可转换为数字,故等同处理)。参考了网络上一些解决方案;其基本方法是进行代数和逻辑上的变换和值累加。第一种是加减法
swap(Int &a ,int &b)
{
a +=b;
b=a-b;
a =a-b;
}
第二种是异或法
void swap1(elem &a,elem &b)
{
a = a^b;
b = a^b;
a = a^b;
}
第三种是用内嵌汇编的方法
_asm
{
push a;
push b;
pop a;
pop b;
}
第四种是用输出格式 printf直接互换
printf(“a = %c \n b = %c \t”,b,a,);
以上4中方法亲测可行,不过第三种方法有一些问题,但是用内嵌汇编肯定是可行的
还没有评论,来说两句吧...