导图社区 1
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
编辑于2020-07-25 01:58:34C语言
数组
数组名
函数名不能做左值
数组定义、初始化
数组分类
二维数组
字符数组
字符串
指针数组
数组的概念模型和物理模型
函数
函数的定义
概念
定义
声明
空函数
return语句
函数的调用
函数的调用
参数传递机制
作用域与生命周期
作用域
全局变量与局部变量
生命期
高级用法
指针与函数
函数的嵌套调用
函数的递归调用
内联函数与重载函数
默认参数的函数
常量变量
常量
整型常数
浮点常数
字符常量
ASCII表
字符串常量
内部用\0表示字符串结束
‘x’与“x”
const关键字
变量
变量名、值
变量名
变量所代表的存储单元的标志
变量值
存储单元中的内容
变量作用域/生命周期
代码作用域
文件作用域
原型作用域
函数作用域
链接属性
extern—外部也可见
static—内部可见
存储类型—存储变量的内存类型
指针
*定义指针类型
用const修饰的指针—见关键字const
初始化、赋值
初始化为:NULL或者直接赋值
赋值:&取地址符
类型
基本类型指针
int*,char*等
指针数组—数组指针
空指针—NULL
野指针
通用指针
函数指针
指针函数—带有指针的函数
两层指针
结构体指针
结构体数组指针
步长
指针的运算
自加
指针+步长
自减
指针-步长
指针相减
关系运算
易犯的错误
断章取义
画蛇添足
鸡同鸭讲
如何让指针指向一个物理内存
预处理
#include
头文件的定义
#define带参数的宏
#define与typedef的区别
条件编译
语句
分支语句
if语句
else与之最近邻的相匹配
switch语句
每一个case后的break语句不可省,最后一个分支default语句不能省;每一个case具有唯一一个值;switch(整型表达式){case:整型常量表达式....}
goto语句
在需要跳转的语句前加标签,执行时goto:标签危险的语句,尽量避免使用
循环语句
for循环语句
注意边界问题、控制变量尽量采用“半开半闭区间”、不可在循环体内部修改变量
while循环语句
嵌套循环,只能跳出内层循环
do while循环语句
与while语句相同但会比while语句多执行一次;先执行语句,再判断
符号 (注意优先级问题)
算数运算符
(+-*/%++- -)
关系运算符
(><==>=<=!=)
逻辑运算符
(||&&)
赋值运算符
(=+=-=*=/=%=)
位运算符
(<<>>~|^&)
条件运算符
exp1?exp2:exp3(如果exp1成立,则执行2,否则执行exp3)
逗号运算符
操作数从左到右依次执行,最终结果为最后一个逗号右边的值(中间逗号的表达式不能为空)
指针运算符
(*&)不能对空指针进行解引用++- -操作
成员类型操作符
(.->)用于结构体成员
数据类型
基本数据类型
整型
短整型(short)
整型(int)
长整型(long)
浮点型
单精度(float)
双精度(double)
字符型
字符(char)
高级数据类型
数组
一维数组
二维数组
结构体
结构体类型定义
结构体变量定义
结构体变量引用
枚举
枚举类型定义
枚举变量定义
枚举变量引用
结构体与共用体
结构体
结构体类型的定义
结构体类型变量的定义
结构体变量的初始化
结构体的成员访问
结构体数组
结构体指针
用结构体指针处理链表
共用体
共用体类型的定义
共用体类型变量的定义
字符串一定以‘\0’结尾,‘\0’=0不是字符串不能用strlen()等操作
一个指向结构体 一个指向结构体数组