题目:有这样一个巧妙的表达式:
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;
print