枚举类型的存储区就是整数类型的存储区,
枚举类型存储区里只能放有限的几个整数
枚举类型也需要先声明然后才能使用
声明枚举类型的时候需要提供几个名称,计算机
为每个名称分配一个整数。只有这些
整数才能记录到这种枚举类型的存储区里
不同枚举类型所能记录的整数范围不同
声明枚举类型的时候需要使用enum关键字
计算机给枚举中第一个名称分配整数0,向后
依次递增
可以在声明枚举类型的时候指定某个名称
对应的整数,这个名称后面的名称对应
的整数也会随之发生变化
联合也可以用来声明新的数据类型
声明联合的时候需要使用union关键字
联合的所有子存储区互相重叠
联合的所有子存储区开始地址一样
联合的存储区可以当作多种不同类型的存储区
使用,每个成员变量代表了联合的一种
使用方式
联合存储区的大小应该是最大成员变量的大小
用来记录普通类型存储区地址的指针叫一级
指针
指针变量存储区的地址可以记录在二级指针里
声明二级指针的时候需要使用**
在二级指针变量名称前使用**可以找到捆绑
的普通变量存储区
在二级指针变量名称前使用*可以找到捆绑
的一级指针存储区
二级指针可以代表指针数组,但是不能代表
二维数组
无类型指针有可能实际代表的是一个二级指针
被调用函数可以通过二级指针形式参数把一个
地址数据传递给调用函数
C语言里函数也有地址
函数名称可以用来表示函数的地址
函数指针可以用来记录函数的地址
函数指针也需要先声明然后才能使用
函数指针也需要先声明然后才能使用
函数指针声明可以根据函数声明变化得到
函数指针也分类型,不同类型的函数指针适合
与不同类型的函数捆绑
函数指针可以用来调用函数
函数指针可以作为形式参数使用
会作为实际参数使用的函数叫回调函数
可以在程序运行的时候临时决定需要分配多少
存储区
这种分配存储区的方法叫动态分配内存
为了使用动态分配内存需要用到一组标准
函数,为了使用这些标准函数需要包含
stdlib.h头文件
malloc函数可以动态分配一组连续的字节
这个函数需要一个整数类型参数表示希望分配
的字节个数
这个函数的返回值表示分配好的第一个字节的
地址
如果分配失败则返回值是NULL
这个函数把返回值放在一个无类型指针存储区里,
需要首先转换成有类型指针然后才能使用
计算机不会自动回收动态分配内存
如果程序中不再需要使用某些动态分配内存
就需要使用专门的语句把他们还给计算机
free函数用来释放动态分配的内存
free函数需要动态分配的第一个字节的地址
作为参数
一起分配的内存必须一起释放
如果使用指针作为参数调用free函数则函数结束
后指针将成为野指针,必须恢复成空指针
调用函数可以使用被调用函数动态分配的内存
预习:
1.文件操作