请问右移>>与右移赋值>>=有什么区别吗?

2025-01-19 08:14:19
推荐回答(4个)
回答1:

有区别 ,我给你举一个最简单的例子 你就看出来了

a>>2 跟 a>>=2 这两个执行后 ,第一个a的值没变, 而第二个a 的值是 将a右移两位后 再重新给a赋值, 所以就有区别了 , 区别就在于 第二个是复合运算符, 它里面有个赋值的操作

回答2:

有区别,就和+,+=一样,你可以 a=b>>5;但b的值没有变,如果使用b>>=5,那么b的值就变了,变成和前面的a一样了,b>>=5这个过程,你可以简单理解为编译器新建了一个中间变量temp,然后temp=b>>5,b=temp;

回答3:

区别大了去了,前者宏定义标志着在这着程序中pi的值无法改变;而后者赋值则是可以在程序中根据自己的需要给于适当的改变pi的值如:“pi=3.14;”,且这种改变是可行有效的,不像前者即使你在程序中改变pi的值也是无效的。你可以试试!

回答4:

(1)a >>= b; 等价于 (2) a=a>>b

区别就在于 (1)更简洁 但不够直观, (2)较为繁琐 但直观