操作符
算术运算符
+加 -减 *乘 /除 %余
赋值运算符
=赋值 +=、-=、*=复合赋值操作符
关系运算符
==等于 !=不等于 //优先级高于后面的4个
>大于 >=大于等于
<小于 <=小于等于
如:3<7<5为真
逻辑运算符
!取反 ||逻辑或 &&逻辑与
1、计算结果为布尔值。
2、||和&&具有短路特征,若前面的表示为真后面的表达式则不会再进行计算。
如:(8 || ++num) (0 && ++num) num不会进行自增操作
三目运算符
表达式 ? 真 : 假;
位运算符
~取反 如:0x6c == ~0x93;
&按位与 相应bit位同为1则为1,否则为0。作用:取值
|按位或 相应bit位同为0则为0,否则为1。作用:赋值
^异或 相应bit位相同位0,不同位1。
<<左移 所有二进制数向左移n位。作用:左移1位=乘2(前提舍弃位没有1)
>>右移 所有二进制数向左移n位。作用:右移1位=除2
注意:有符号类型数字右移时用符号位填充,无符号类型数字右移时用0填充
自增自减运算符
后操作:a++ a–
前操作:++a --a
注意:不要在一条语句中进行多次自增自减运算,会导致结果不确定
操作符的优先级
1、赋值操作符先算右边再算左边。
2、复合赋值操作符的优先级和赋值操作符的优先级一样底。
3、! > 算术运算符 > 关系运算符 > &&和|| > 赋值运算符
三大程序结构
顺序结构
程序从上到下,一行一行执行到程序结束。
选择结构
if条件判断语句、switch分支。
注意:1、多个分支同时满足的时候,只会执行前面分支的语句。
循环结构
1、for循环语句、
2、死循环:
for(int i=0; ; i++){}
for( ; ; ){}
while(1){}
3、C99规范:允许在循环的小括号里临时申明循环变量。循环结束后销毁。(C89不允许)
4、break:结束循环。跳出循环;只跳一层循环。
continue:结束当前循环。不跳出循环。
5、多重循环(循环的嵌套)
6、while、do…while; //适合解决事先不知道次数的循环。
goto
可以把任何一条语句指定成下一条语句。不建议使用。