以前一直对变量的存储位置有些模糊,今天整理下,让以后的编程思路更清晰。
C/C++中,变量分为:
1、全局变量
2、静态全局变量
3、静态局部变量
4、局部变量
变量在内存中的存储位置包括:
1、全局(静态)存储区
2、栈
3、堆
4、自由存储区(和堆类似)
5、常量区
变量和存储位置的关系:
1、全局变量、静态全局变量和静态局部变量都存储在全局(静态)存储区;
2、局部变量存储在栈中;
3、由new分配,delete释放的内存块存储在堆中;
4、由malloc分配,free释放的内存块存储在自由存储区;
5、常量存储在常量区中,不允许用户修改,例如由const修饰的变量,常量字符串等。