开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 10 天,点击查看活动详情。
1、数据类型
- 编译器指定出的数据类型,为了更好的管理内存
2、C语言标准
- ANSI 美国国家标准协会制定出的标准,在89年制定出第一套标准 C89标准
3、typedef使用
3.1主要用途:给类型起别名
3.2可以简化 struct 关键字
3.3可以区分数据类型
3.4提高代码移植性
4、void的使用
4.1无类型,不可以创建变量,无法分配内存
4.2限定函数返回值
4.3限定函数中的参数列表
4.4void * 万能指针,可以不需要强制类型转换 给其他指针赋值
5、sizeof的使用
- 本质: 不是函数,而是一个操作符
当统计类型占的内存空间时候,必须要加 小括号
当统计变量占内存空间时候,可以不加小括号
-
返回值类型是 无符号整型
unsigned int -
可以统计数组的长度
注意数组名称如果在参数列表中,会退化为指针,指向数组的第一个元素
6、变量的修改方式
-
直接修改
-
间接修改
1、通过指针对内存进行修改
2、对自定义数据类型进行了修改
7、内存分区
7.1运行前
7.1.1代码区
1.共享的
2.只读的
7.1.2数据区
1.`data` 已初始化的全局变量、静态变量、常量
2.`bss` 未初始化的全局变量、静态变量、常量
7.2运行后
7.2.1栈区
1.属于先进后出的数据结构
2.由编译器管理数据开辟和释放
3.变量的生命周期在该函数结束后自动释放掉
7.2.2堆区
1.容量远远大于栈
2.没有先进后出这样的数据结构
3.由程序员管理开辟和管理释放
`malloc` `free`
记住手动开辟的要手动释放