由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 做题了,做题了,看谁能搞清楚
相关主题
问一道面世题a C question about global variable
问一道题分享A公司面经
被基础题搞挂了问一个java的面试题
一道面试题: 如何找到missing element in an array.quicksort到底以哪个为准啊
请问各位联系编程的同学:是先复习课程还是直接就做题?C++ 一小题
准备明年5月毕业,本来想一开学就投简历攒RP-面经
又要做题了,郁闷请教一个面试题
一个面经C++ 题目
相关话题的讨论汇总
话题: explain话题: swap话题: correct话题: xor话题: int
进入JobHunting版参与讨论
1 (共1页)
d*******n
发帖数: 369
1
swap a and b using XOR (no the third variable). The following function is
correct? Explain
swap(int *a, int *b)
{
*a ^= *b ^= *a ^= *b;
}
I found that if I write it as follows, it's correct
*a ^= *b;
*b ^= *a;
*a ^= *b;
but *a ^= *b ^= *a ^= *b is wrong but why? explain in detail
s*********t
发帖数: 1663
2
我试了试,第一种是对的啊

【在 d*******n 的大作中提到】
: swap a and b using XOR (no the third variable). The following function is
: correct? Explain
: swap(int *a, int *b)
: {
: *a ^= *b ^= *a ^= *b;
: }
: I found that if I write it as follows, it's correct
: *a ^= *b;
: *b ^= *a;
: *a ^= *b;

d*******n
发帖数: 369
3
第一种是 a = 0 and b = 3;

【在 s*********t 的大作中提到】
: 我试了试,第一种是对的啊
w******e
发帖数: 81
4
看起来像是 *a^=*b^=*a^=*b在具体运算时第一个*a的值跟第二个*a的值没有同时
update。第一个*a应该是保留了初始值,第二个*a=*a^*b,之后*b换成*a的初始值,这
样最后一次*a^*b实际是两个相同的数xor,结果为0.

【在 d*******n 的大作中提到】
: 第一种是 a = 0 and b = 3;
i*****r
发帖数: 265
5
The statement is equivalent to *a = *a ^ (*b ^= *a ^= *b);
If compiler evaluates from left to right, then the second *a is the initial
value passed in, which is wrong.
1 (共1页)
进入JobHunting版参与讨论
相关主题
C++ 题目请问各位联系编程的同学:是先复习课程还是直接就做题?
面试题求助准备明年5月毕业,本来想一开学就投简历
C++ template又要做题了,郁闷
C/C++ Questions一个面经
问一道面世题a C question about global variable
问一道题分享A公司面经
被基础题搞挂了问一个java的面试题
一道面试题: 如何找到missing element in an array.quicksort到底以哪个为准啊
相关话题的讨论汇总
话题: explain话题: swap话题: correct话题: xor话题: int