按照作用分类:关键字、标识符、运算符、分隔符、标点符号
3.1关键字(32个)
概念:由系统预定义的具有特殊功能的词法符号
分类:
存储类型:auto static extern register
数据类型:char short int long float double signed unsigned
构造类型:struct union enum
选择结构:if else switch case default
循环结构:for while goto do break continue
其他: void(空类型) typedef(重定义) volatile(防止编译器优化)const(只读修饰、常量化) sizeof(计算数据所占空间大小) return(返回值)
3.2标识符
标识变量、函数或其他用户自定义的项目名称
遵循规则:
- 由数字、字母、下划线组成
- 开头不能是数字
- 不能和关键字重复
- 见名知义
3.3运算符
算术运算符
/:整数相除,向下取整
%:只能用于整数运算
如果++作为表达式参与运算,要注意++的前后位置,来判断是先运算还是先取值。
逻辑运算符
运算法则:
&&(逻辑与):全真为真,一假则假
||(逻辑或):一真则真,全假则假
!(逻辑非):非真即假,非假即真
截断法则:
逻辑与运算中,如果前面的表达式为假,则后面的表达式不执行
逻辑或运算中,如果前面的表达式为真,则后面的表达式不执行
位运算符
&:全1则1,有0则0
|:有1则1,全0则0
^:异或
~:按位取反
<<:左移 左移几位右边补几个0
>>:右移 右移几位,左边补几个符号位
将一个数字a的某一位(n位)置0/置1?
a|(1<<n)
a&(~(1<<n))
关系运算符
< > >= <= == !=
赋值运算符
= += -= *= /= %=
三目运算符
表达式1?表达式2:表达式3
运算法则:先执行表达式1,然后判断表达式1是否成立,如果成立就执行表达式2,否则就执行表达式3.
运算符的优先级
单目运算符 ! ~ ++ --
算术运算符 * / % + -
移位运算符 << >>
关系运算符 < <= > >= == !=
位与运算符 &
异或运算符 ^ |
逻辑运算符 && ||
条件运算符 ?:
赋值运算符 = += *= /= %= ...
口诀: 单算移关与 异或逻条赋 从右向左单条赋
3.4标点符号:
分号,逗号,大括号,中括号,小括号
3.5分隔符:
换行、空格、tab