数据类型修饰相关
auto按照自动的方式进行变量的存储
const定义常量或常参数
extern声明外部变量或函数
register指定变量的存储类型是寄存器变量
static指定变量的存储类型是静态变量,或指定函数是静态函数
volaTIle变量的值可能在程序的外部被改变
数据类型相关
char字符型数据
short定义短整型变量或指针
int整型数据
long长整型数据
signed有符号的整型数据
unsigned定义无符号的整型变量或数据
float单精度浮点型数据
double双精度浮点型数据
struct结构体型数据
enum枚举型类型
union联合型数据
void空型数据
typedef为数据类型定义别名
流程控制相关
conTInue结束本次循环进入下一次循环
break跳出循环或switch语句
switch定义switch语句
case定义switch中的case子句
default定义switch中的default子句
do定义do-while语句
while定义while或do-while语句
if定义if语句或if-else语句
else定义if-else语句
for定义for循环语句
goto定义goto语句
预处理相关
#include包含头文件
#define定义宏
#undef取消已经定义的宏
#if定义条件编译的条件
#ifdef定义条件编译的条件
ifndef定义条件编译的条件
#elif定义条件编译的条件
#endif结束条件编译
其他
return从函数返回
运算符
优先级运算符含义操作数数目结合方向感1() [] -> .括号(函数等),数组,两种结构成员访问双目左-右2! ~ ++ -- + - |* & (类型) sizeof否定,按位取反,自增,自减,正负号,间接,取址,类型转换,求大小单目右-左3* / %乘,除,取模双目左-右4+ -加,减双目左-右5<< >>左移,右移双目左-右6< <= >= >小于,小于等于,大于等于,大于双目左-右7== !=等于,不等于双目左-右8&按位与双目左-右9^按位异或双目左-右10|按位或双目左-右11&&逻辑与双目左-右12||逻辑或双目左-右13? :条件三目右-左14= += -= *= /= &= ^= |= <<= >>=各种赋值双目右-左15,逗号(顺序)双目左-右
()括号运算符,表示一个标识符代表一个函数,fcnname()。 还可用于划分优先级,即1+23,如果不记得先算+还是先算,那就写成1+(23)或(1+2)3。最后,括号还可以用于C的强制类型转换。
[] 数组运算符,表示一个标识符代表一个数组,arrname[]。从数组中取一个元素,arr[2]
->成员访问,用于通过指针变量访问成员,ptr->member等价于(*ptr).member
.成员访问,访问复合数据类型的成员
~按位取反,1变0,0变1
++自增运算符,将变量自身的值加一,分为前++和后++,前++是先执行自增使用增加后的值进行运算,后++是先进行运算,语句执行完毕后再进行++,效率不如前++,因为需要将变量的值临时复制一份
*取值运算符,声明某一类型的变量。取一个指针变量指向的值
&取址运算符,取一个变量的地址
<
<
&按位与,有0出0,全1出1
^按位异或,不同为1,相同为0,使用异或交换两个数:a^=b;b^=a;a^=b;
|按位或,有1出1,全0出0,
&&逻辑与,全真为真,有假为假,C语言中用1表示负真异,0表示非负假同
?:条件运算符,C语言中唯一一个三目运算符,表达式A?表达式B:表达式C表示对表达式A的值进行判断,如果A为真,则执行表达式B,否则执行表达式C
标识符
C语言里使用名称区分不同内容,诸如变量名,函数名etc这些名称叫做标识符(IdenTIfier),实际开发总是采用驼峰式或者下划线式来书写标识符,标识符的长度没有限制,但是编译器只会截取一部分使用
它的编写规则:
Keyword不能当标识符
第一个字符应该是 英文字母、下划线
后面的每个字符可以是 英文字母、下划线、阿拉伯数字字符
大小写敏感