首页 > 代码库 > const、static变量存放位置
const、static变量存放位置
我们将以下面的例子介绍const变量和static变量的存放位置:
staticint val_a= 1; // 初始化的静态变量
int val_b= 2; // 全局变量
constint val_c= 3; // const 全局变量
staticint val_d; // 未初始化的静态变量
int val_e; // 未初始化的全局变量
int main()
{
static int val_f = 5; // 初始化的局部静态变量
static int val_g; //未初始化局部静态变量
int val_h = 6; //初始化局部变量
int val_i; //未初始化局部变量
const int val_j = 7; //const局部变量
return 0;
}
①static无论是全局变量还是局部变量都存储在全局/静态区域,在编译期就为其分配内存,在程序结束时释放,例如:val_a、val_d、val_h、val_i。
②const全局变量存储在只读数据段,编译期最初将其保存在符号表中,第一次使用时为其分配内存,在程序结束时释放,例如:val_c;const局部变量存储在栈中,代码块结束时释放,例如:val_j。
③全局变量存储在全局/静态区域,在编译期为其分配内存,在程序结束时释放,例如:val_b、val_e。
④局部变量存储在栈中,代码块结束时释放,例如:val_h、val_i。
注:当全局变量和静态局部变量未赋初值时,系统自动置为0。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。