c++/c对应内存分区

2023-12-30 23:55:53

栈区

1. 用于存放,局部变量,函数的参数。?

2. 内部存放的变量生命周期:? ?从定义开始到函数结束。所以局部变量和参数只能在函数自己本身使用。?

3. 作用域: 只能在定义的函数中使用。?

堆区?

1. 堆区内存,是用来动态分配内存的,程序员可以根据情况自己申请内存。?

2. 生命周期: 从申请开始,到释放结束,或者程序结束,操作系统自动释放?(生命周期可以由自己控制)

3. 作用域: 从申请开始到释放,之间的程序都可以使用。?

常量区?

1. 用来存储,字符串常量,它有提个特性,就是只读。当我们使用指针指向字符串时,是不可以对其进行修改的。(因为同一个字符串所有指针都指向一份,一个修改了会影响其它的使用)?

静态常量区?

1. 用来存储全局变量和金泰变量。?

2. 生命周期:? 从定义开始到程序运行结束。?

3. 全局变量作用域:? 定义开始,以下的程序都可以使用?

? ? 静态变量作用域: 只能在所定义的函数内使用。?

代码区?

1. 函数体(包括类的成员函数和全局函数)中,函数调用,循环,条件等指令的二进制代码。?

2. 所以除了函数中定义的变量,其它内容都存放在代码区。??

3.??所以,函数中定义的变量和函数中其它的指令不在一个内存内(对于后面理解类对象的内存有帮助)。

文章来源:https://blog.csdn.net/weixin_68026222/article/details/135310735
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。