导图社区 c语言知识点
c语言知识点总结,详细的总结了数据类型,函数,运算符,数据的储存,数组,指针,文件,常量与变量,储存。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
C语言
数据类型
数据类型关键字
本质:定义为固定大小,固定存储方式的名称
作用:编译时分配给对象相应的空间
基本类型
整型
int
short
long
long long
unsigned
浮点型
float
double
long double
字符类型:char
衍生类型
数组
联合 union
在同一内存空间中,存储不同的数据类型,(不是同时储存)
枚举 enum
作用:声明符号名称来表示整型常量
使用:成员默认从0开始依次递增或自己初始化初值
优点:提高程序可读性,便于调试,可一次定义多个符号常量
结构 struct
结构体声明(常常配合typedef使用)
结构体的定义和初始化
结构成员的访问:结构成员运算符 .(.的优先级高于&) ->(指针使用)
结构数组与结构指针
嵌套结构
结构特性:C11允许把一个结构赋值给另一个结构,当做参数传递,当做返回值返回
匿名结构
空类型void
设置函数参数为空
设置函数无返回值
定义空指针
指针类型
分支,循环语句
分支语句:if,else,switch,case
循环语句:while,for,do while
数据的储存
原码:直接转换成二进制,符号由符号位表示
反码:原码符号位不变,负数其他位按位取反
补码:反码+1
整型提升和截断
整型数据的上下溢
符号位,小数位,指数位分别用二进制储存
大小端
大端:数据的低位存放于内存的高地址中,数据的高位存放于内存的低地址中
小端:数据的低位存放于内存的低地址中,数据的高位存放于内存的高地址中
一维数组
一维数组创建和初始化
一维数组访问:指针和数组下标
一维数组的储存地址连续
二维数组
二维数组的创建和初始化
指针和数组访问数组成员的方法
指针数组:存放指针的数组
数组作为参数,一般以指针形式传入
指针
指针变量:储存地址的变量
指针类型:(指针可以指向任何地址)
字符串指针
数组指针
函数指针
指向指针的指针
指针运算
指针赋值
指针与整数的加减运算
指针的关系运算
文件
文件分类
文本文件
二进制文件
文件打开与关闭
fopen,fclose
文件读写
按字符/行读写:fputc,fgetc
按块读写:fread,fwrite
按格式化读写:fprintf,fscanf
随机读写:fseek
常量与变量,存储
变量
变量分类(按存储类别)
自动:自动存储期,块作用域,无链接,在块内声明
寄存器:自动存储期,块作用域,无链接,块内使用register
静态外部链接:静态存储期,文件作用域,外部链接,在所有函数外部声明
静态内部链接:静态存储期,文件作用域,内部链接,在所有函数外使用static
静态无链接:静态存储期,块作用域,无链接,块内使用static
变量定义与赋值
变量的作用域,存储期,链接
作用域:程序中可访问标识符的区域
块作用域:在定义的块中可访问
函数作用域:仅用于goto的标签,其作用域扩展至整个函数
函数原型作用域:用于函数原型的形参
文件作用域:从其定义初至文件末尾皆可访问(拥有文件作用域的变量也称全局变量)
存储期
静态存储期
线程存储期
自动存储期
动态分配存储期
链接
外部链接:多文件程序中皆可访问
内部链接:单文件可访问
无链接:非全局变量皆为无链接
常量
字面常量
const创建的只读变量(被储存在常量区)
枚举常量
字符串常量
关键字
auto:显式使用,表示有意覆盖一个外部变量名或者强调不要将其改为其他存储类别(与C++中用法截然不同)
typedef:类型重命名
register:请求寄存器变量
static
修饰局部变量:使其具有静态存储期
修饰全局变量:使其由外部链接转变为内部链接
修饰函数:被修饰的函数只能在本文件内使用
extern:用于在文件中使用在其他文件中定义的外部变量
动态内存分配
malloc
void* malloc(sizeof(int))
请求空间成功,返回指向该空间的指针
请求失败返回NULL指针
使用的时候一般利用强制转换将返回的指针转换为所需指针
calloc
void* calloc(int num,sizeof(int))
请求num个所需大小的空间,并初始化为0
其他同malloc
realloc
void* realloc(void* ptr,sizeof(int))
ptr为要调整的动态内存地址,第二个参数为调整后的大小
返回值为调整后的内存地址
它在调整空间的同时,会将原来的数据搬到新空间中
free
参数为动态内存地址
用于解放动态内存占用的空间
运算符
算术运算符:+,-,*,/,%
移位运算符:<<,>>
赋值运算符:=,+=,-=,*=,/=,%=,
逻辑运算符:&&,||,!
条件运算符:?:
关系运算符:>,>=,<,<=,==,!=
其他运算符:-,+,(正负号)&,*(解引用),++,--,sizeof,强行转换
运算表达式返回值
运算符优先级
函数
库函数
自定义函数:函数名,返回值类型,参数
函数声明和函数原型
函数实参和函数形参
函数调用
通过函数指针调用函数
函数递归
函数的嵌套调用和链式访问
嵌套调用:一个函数中调用另一个函数
链式访问:一个函数的返回值当做另一个函数的实参