C 语言移位运算符

来源:百度知道 编辑:UC知道 时间:2024/07/08 22:37:26
main(void)
{
int c;
int i = 5;
c = (i<<2);
printf("%d \n", i);
printf("%d \n", c);
getch();
}怎么输出5 20,i的值怎么不变啊,不是应该也是20吗?

(i<<2)

c=i+100;
i也不会变成105吧

c=(i<<2);的意思是把i的值转化为二进制,然后数值整体左移两位,再转化为十进制然后赋值给c。在整个过程中,i值都没有重新被赋予新值,所以i值不变。

如果是 c=i=(i<<2);的话,i值就变了。

c=i<<2表示将i左移两位后的值赋给c,i本身不变的

i是不会变的