四级指针
来个文字游戏
指针的指针 是二级指针
函数原型
int main(int argc, char* argv[])
输入的 二维数组 字符串
./program_name arg1 arg2 arg3
其中program_name是可执行文件的名称,arg1、arg2和arg3是你要传递的命令行参数。
在程序中,这些参数将被存储在argv数组中,并可以通过索引访问。
![alt](https://img-blog.csdnimg.cn/img_convert/4f3ea9f68fd1452cf5b85ec32287f4c2.png)
指针的指针的指针的指针是什么? 自然是四级指针
int a = 5;
int *p = &a; // p 是一个指向 int 的指针
int **pp = &p; // pp 是一个指向指针的二级指针
int ***ppp = &pp; // ppp 是一个指向二级指针的三级指针
int ****pppp = &ppp; // pppp 是一个指向三级指针的四级指针
真实场景(有啥用)
-
Nginx 的四级指读取配置文件
Nginx 源码有一个四级指针——ngx_cycle_t.conf_ctx
![alt](https://img-blog.csdnimg.cn/img_convert/6ea97d0f5815027ebb07ee82c3dbe7eb.png)
Nginx 的四级指针结构的优点包括:
-
灵活性:四级指针结构允许 Nginx 在每个运行周期中动态地存储和检索配置上下文,从而为用户提供了高度的模块化和定制化能力。
-
动态配置:通过使用四级指针结构,Nginx 可以支持动态配置,这意味着可以在运行时更改配置而无需重新启动服务器,从而提高系统的可维护性和响应性。 nginx -s reload -c conf/nginx.conf
-
减少内存占用:由于四级指针结构只在需要时分配内存,因此它可以有效地减少内存占用,尤其是在不需要大量自定义配置的情况下。
来源:Nginx 核心知识 150 讲
-
数据结构处理:在处理复杂的数据结构时,如树、图等,可以使用四重指针来表示节点的关系。
-
动态内存分配:在需要动态分配二维数组时,可以使用四重指针来管理内存,提高内存的使用效率。
优缺点
别用
本文由 mdnice 多平台发布