大家首先看两个程序:
1. while( c = ' ' || c == '\t' || c == '\n')
2. if (flags & board != 0 )
3. 1<<3+2
大家看完,什么感觉?我觉得应该好一部分人应该这样理解:
第一个:不就是现将空格字符赋值给了变量c然后进行后面的(||)或运算,依次比较
第二个:也不就是变量flags和变量board进行二进制的(&)&运算,产生结果跟0比较
同理:第三个也不就是1先想左移3位,变成了8,然后在加上2变成了10
但是,事实真的是这样的吗??
我们大家先来看个东西:
运算符 结合性
(),[],->,.(4种) 从左到右
!,~,++,--,-,(type),*,&,sizeof(8种) 从右到左
*,/,%(3种) 从左到右
+,- (2种) 从左到右
<<,>>(2种) 从左到右
<,<=,