![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
阳光_你好
这个作者很懒,什么都没留下…
展开
-
栈区,堆区,全局静态区,常量区,代码区
3、全局区(静态区)(static):全局变量和静态变量的存储都是在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域, 程序结束后有系统释放。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。1、栈区(stack): 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。2、 函数出现无限递归调用,函数调用的时候会将一些运行相关的信息压栈,这个也就好理解了。4、常量区:常量、字符串常量池就是放在这里的, 程序结束后由系统释放。原创 2022-12-19 10:07:45 · 398 阅读 · 1 评论 -
c与c++的struct区别
看了一些文章,总结了大概这四点,实际上是三点,两外一点说的是C++中的struct和class的区别,C++中struct是抽象数据类型(ADT),可以将struct当成类来处理,可以包含类的所有东西,比如构造函数、析构函数、友元等,可以继承也可以实现多态,只是因为有了class一般不用。C语言中:struct是用户自定义数据类型(UDT),C语言struct不是类,不可以有函数,没有权限设置也不能使用类的特征例如public等关键字,是一些变量的集合体,可以封装数据却不可以隐藏数据。原创 2022-12-07 16:26:23 · 792 阅读 · 0 评论 -
C/C++中的static关键字详细解析
1.先来介绍它的第一条也是最重要的一条:隐藏。(static函数,static变量均可) 当同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。 2.static的第二个作用是保持变量内容的持久。(static变量中的记忆功能和全局生存期) 存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。 共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来, static可以控制变量的可见范围,说到底static还是用来隐藏的。原创 2022-12-07 14:07:23 · 170 阅读 · 0 评论