首页
社区
课程
招聘
[原创]深入理解C语言六-知识点记录
发表于: 2021-7-25 18:36 5768

[原创]深入理解C语言六-知识点记录

2021-7-25 18:36
5768

1、没有解释方式的指针,只是一个地址
2、没有解释方式,不支持*运算,不支持下标运算,不支持加减运算
3、pv赋值需要一个地址类型,任意类型的指针都可以
4、pv不能赋值给有类型的指针

malloc申请的堆内存实际上是一个结构体,成员依次包括:
1、上一个堆地址
2、下一个堆地址
3、所在文件地址
4、所在行
5、堆类型
6、堆长度
7、堆编号
8、上溢标志
9、堆内容
10、下溢标志
指针p实际指向的地址是堆内容的地址。

1、引用或操作资源的变量必须初始化为无效值
2、申请资源后必须检查
3、如果结果错误按需求处理错误
4、使用资源
5、释放资源前必须检查引用资源的变量是否有效
6、释放完成后,必须将引用资源的变量重置为无效值,防止野指针

内存属性可分为Read可读、write可写、execute可执行、share共享,程序的全局变量、常量是按同内存属性分配内存空间的。C程序运行时分配的内存空间从低地址到高地址依次为:
1、Code,代码段,re,可读可执行。
2、Data,数据段,包含全局变量,常量、静态常量。
(1)uninit,未初始化部分,wr,可读可写。
(2)inited,初始化部分,wr和r,可读可写。
3、Heap,堆,wr,可读可写。
4、Stack,栈,wr,可读可写。
C程序运行时最开始做的事情是初始化浮点协处理器、初始化全局变量。

作用域实际上是编译器按照C标准所规定的语法做出的访问限制。
1、块作用域:函数内部的中括号中
2、函数作用域:函数的开始到函数的结束
3、文件作用域:变量所处的文件内
4、进程作用域:所处模块的装载到所处模块的卸载

全局变量和局部变量的区别:
1、作用域不一样
2、生命周期不一样
3、存放区域不一样(内存)

1、进程作用域
2、生命周期从所处模块装载到所处模块卸载
3、存放在内存的数据段

1、函数作用域
2、生命周期从从函数的开始到函数的结束
3、存放在内存的栈中

1、文件作用域
2、生命周期从所处模块装载到所处模块卸载
3、存放在内存的数据段


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2021-7-26 19:36 被流照君编辑 ,原因:
收藏
免费 2
支持
分享
最新回复 (1)
雪    币: 2557
活跃值: (4443)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
好水
2021-7-25 21:40
0
游客
登录 | 注册 方可回帖
返回
//