在下面的表达式中,左移位运算的结果被赋值给变量i
。
int i;
i = 7 << 32;
printf("i = %d\n",i);
在下面的表达式中,执行左移位赋值操作。
int x = 7;
x <<= 32;
printf("x = %d\n",x);
上述两个表达式给出了不同的结果。但这与以下两个表达式不同。他们都给出了相同的结果。那么,上述表达式返回不同值的原因可能是什么呢?
int a;
a = 1 + 1;
printf("a = %d\n",a);
int b = 1;
b += 1;
printf("b = %d\n",b);
https://stackoverflow.com/questions/44255195
复制相似问题