4. 全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区。 5. 常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多),比如字...
但是并不是所有被const修饰过的变量都放在常量区,事实上只有全局变量才是如此,普通的局部变量被const修饰后仅仅意味着在表达式上不能显式地改变该变量值,否则编译器会报语法错误,但该变量仍存放在栈区。C++不同的地方就在此,C++鼓励使用const来取代#define,因为C++对const进行了优化,如果该变量的值是常量表达式,在C...
1.3.1 全局区(全局变量、静态变量(const,constant或final等)、文字常量区) 1.3.2 栈区(栈区(stack) :① 由编译器自动分配释放,存放函数的参数值,局部变量的值等。② 函数运行时分配,函数结束时释放。由编译器自动分配释放 ,存放为运行函数而分配的局部变量、函数参数、返回数据、返回地址...
“内存泄漏”通常说的就是堆区。 3、静态区:全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后,由系统释放。 4、常量区:常量存储在这里,不允许修改。 5、代码区:顾名思义,存放代码。 分布图: 栈区和堆区...
常量区:字符串常量和其他常量的存储位置,程序结束后由操作系统释放。 程序代码区(code) 存放函数的二进制代码。 函数调用模型必须和程序四内存区综合起来考虑: 主调函数分配的内存(栈区、堆区、全局区)都可以在被调用函数中使用; 被调用函数中分配的内存,要分情况:在栈区中分配的内存,在主调函数中是不能使用的...
静态区)。常量区:存放常量,一般是字符串常量;全局区(静态区):存放全局变量和静态变量。
bss区主要存放的是未初始化的全局变量、静态变量,这些未初始化的数据在程序执行前会自动被系统初始化为0或者NULL 2.3 常量区 常量区是全局区中划分的一个小区域,里面存放的是常量,如const修饰的全局变量、字符串常量等 在VS下运行结果如下: 总结:全局区存放的是全局变量、静态变量和常量 ...
常量区:字符串常量和其他常量的存储位置,程序结束后由操作系统释放。 程序代码区:存放函数体的二进制代码。 3、操作系统找到main函数入口执行 1.4函数调用模型 1.5函数调用变量传递分析 (1) (2) (3) (4) (5) 1.5栈的生长方向和内存存放方向 相关代码: ...
C中,内存分为5个区:堆(malloc)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量)和常量存储区(常量)。此外,C++中有自由存储区(new)一说。 全局变量、static变量会初始化为缺省值,而堆和栈上的变量是随机的,不确定的。