C变量区域
创始人
2024-06-01 16:11:23

C语言中有五大内存分区,分别是栈区、堆区、全局区/静态区、常量区和代码区。

1.栈区:由编译器自动分配释放,存放函数的参数值、局部变量的值等。当调用函数的时候函数中定义的变量会被加到栈中,当函数离开的时候,被添加的变量会从栈中移除,栈在最高的地址上,所以添加的变量地址会逐渐变小,里面的内容可读可写。

2.堆区:一般由程序员分配和释放内存空间,例如我们在使用链表申请节点内存时,malloc函数申请的内存就是堆区的内存空间,使用完后要用free函数释放空间。里面的内容可读可写。

3.全局区/静态区:全局变量和静态变量就存放在这里,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后由系统释放。 是由系统管理的可读可写的内存。

4.常量区:该内存区存放的常量,数字常量、字符常量、字符串常量等,不允许修改,所以常量区的内存是只读的。

  1. 代码区:存放程序的二进制代码,代码区的内容也是只读型。

====补充题外话

刚好看到了函数参数中有指针常量,忘了是怎么回事了。查了下记录一下

1.const int *p int const *p

本质是一样的 p 改变,但是 *p 不可以改变 即指针指向的值不可以改变,一般用来做对入参的限制,不让入参被改变。 fun(const int *p,int a):入参不可以被改变

2. int *const p

p 不可以改变,*p可以改变,p指向的地址不可以改变,但是*p的内容可以改变

相关内容

热门资讯

重大通报作弊器!乐乐上海麻将a... 重大通报作弊器!乐乐上海麻将ai智能透视辅助插件,乐乐上海麻将本来存在有外挂(有辅助挂方略)1、很好...
分享给玩家透视挂!家乡大贰ai... 分享给玩家透视挂!家乡大贰ai智能透视辅助工具,家乡大贰其实真的有外挂(有辅助挂细节)家乡大贰破解侠...
科普攻略开挂!英豪娱乐城ai智... 科普攻略开挂!英豪娱乐城ai智能透视辅助教程,英豪娱乐城好像真的是有外挂(有辅助挂头条)1、英豪娱乐...
总算了解辅助器!和悦游戏ai智... 总算了解辅助器!和悦游戏ai智能透视辅助教程,和悦游戏确实是真的有外挂(竟然有辅助挂)暗藏猫腻,小编...
揭秘关于辅助器!九九麻将ai智... 揭秘关于辅助器!九九麻将ai智能透视辅助技巧,九九麻将一贯是有外挂(有辅助挂方略)1、用户打开应用后...