移位运算符的优先级高于关系运算符、位运算符、赋值运算符和条件运算符。但是低于运算符。
一直直到移位运算符优先级比较低,今天做一道题的时候,一直做不对,后来发现是cpp的移位运算符的优先级比+-都低。
优先级有15种,记忆办法如下: 记住一种最高:构造类型元素或成员以及小括号。 记住一种最低:逗号运算符。 剩余是一、二、三、赋值——意思是单目、双目、三目和赋值运算符。 在诸多运算符中,又分为:算术、关系、逻辑。 两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符前面。
移位运算符优先级很低 1intmain()2{3constchar* str ="one";4inthashValue =0;5while(*str !='\0')6{7hashValue = hashValue <<4+ *str;8++str;9}1011return0;12} hashvalue的值一直为0,何解? 因为 左移 运算符的优先级很低,所以上面的表达式结果时这样的: 1hashValue = hashValue << (4...
运算顺序:!(优先级最高)、算术运算符(+,-,*,/)、移位运算符(<<、>>) 关系运算符(>,<,==,<=,>=)、逻辑运算符(&&,||)、 赋值运算符(=,+=,-=,*=,/=) 简单记:想要“移位”,得找“关系”,符合“逻辑”,“赋值”位子相关知识点: 试题来源: 解析...
优先级有15种,记忆方法如下: 记住一个最高的:构造类型的元素或成员以及小括号。 记住一个最低的:逗号运算符。 剩余的是一、二、三、赋值——意思是单目、双目、三目和赋值运算符。 在诸多运算符中,又分为:算术、关系、逻辑。 两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面...