问题描述
- 想请教下C语言中a<<2为什么不起作用?
-
如下代码:#include <stdio.h> int main() { int a =8; a<<2; printf("%dn",a); }
为什么打印出来还是8呢?
解决方案
要对a进行赋值a= a<<2;
解决方案二:
因为a<<2只是一个表达式,没有对a进行赋值,如果a=a<<2;那么打印出来的结果就会变了
解决方案三:
a<
->
a<<=2;
解决方案四:
a<<2 ->
a<<=2;
解决方案五:
类似的
a *= 2;
解决方案六:
a=a<<2;
解决方案七:
a<<2这个表达式,确实是将a的值左移2位,但是由于缺少赋值语句a=a<<2,所以a的值没有变化,还是8.
解决方案八:
呵呵,这个问题真逗,a=a<<2;这样才行
解决方案九:
应该改为a<<=2,意义代表a=a*4 。而a=a<<1,代表a=a*2 。
解决方案十:
看到好多都回答了。加上等号就行了
时间: 2024-08-03 13:49:34