运算符易被忽略的十大坑!!!

算数操作符:/与%
   /:/操作符可进行两个整数的运算也可进行两个浮点数的运算,
当两个操作数为整数时其结果必为整数,例如0/2==0,
只要其一个操作数为浮点数,其运算结果必为浮点数
例如:1.0/2==0.5;
   %:除余操作符其两个操作数必须为整数,否则出现语法错误。
移位操作符:>>与<<
   <<:
左移操作符共有两个操作数(num< 左移操作符将num在内存中的补码序列向左移动i位,移出的i位丢弃,右边补上i位的0
   >>:右移操作符分为:逻辑移位与算术移位
逻辑移位:左边i位补0,右边i位丢弃
算数移位:左边i位补符号位,右边i位丢弃。
赋值操作符与判等操作符:=与==
   这两个操作符非常相像,很容易被人弄混,而且不易被人们所发现,
不过还是有一些小技巧可以使的很方便的找出这些错误。
例如:
  if(a==10);经常被人们敲成if(a=10);这样的错误不容易被人们所发现,而且编译器也不会报错,
经常搞得程序员一头雾水,如果我们将它写成if(10==a);就会将错误变成编译型错误就会很放边找出错误所在。
sizeof():
   sizeof()并非函数,而是宏,sizeof不可在函数内部求出数组大小,必须在函数外部求出后通过参数传入函数内部。
逗号表达式:
   逗号表达式最后的结果只与最后一个表达式有关,如:a>3,b=4,c=3;最后整个表达式的结果只与c=3有关,
即:整个表达式最后结果为3.
可改变求值顺序的表达式:&&、||、?:
   逻辑与、逻辑或、条件表达式均可改变表达式的求值顺序。
&&:左边表达式为假的话右边表达式不再进行运算
||:左边表达式为真的话右边表达式不再进行运算
?:?前条件成立的话:后的表达式不再进行运算。

你可能感兴趣的:(C语言编程)