题目:有这样一个巧妙的表达式:
a^=b^=a^=b;
它不需要临时变量就可以交换a和b的值。
【答案】
这不具有可移植性。它试图在序列点之间两次修改变量a,而这种行为是未定义的。例如,有人报告如下代码:
int a=123,b=7654;
a^=b^=a^=b;
在SCO优化C编译器下会把b置为123,把a置为0。
题目:取一个整数a从右端开始的4~7位。
【答案】
main() { unsigned a,b,c,d; scanf("%o",&a); b=a>>4; c=~(~0<<4); d=b&c; printf("%o\n%o\n",a,d); }
题目:一条语句实现x是否为2的若干次幂的判断。
【答案】
题目:求下面函数的返回值(微软)
int fun(x) { int countx=0; while(x) { countx++; x=x&(x-1); } return countx; }
假定x=9999。
【答案】
8
文章来源: https://blog.csdn.net/chen1083376511/article/details/92001876