const、static型数据在内存中如何存储?(变量存放位置)
生活随笔
收集整理的這篇文章主要介紹了
const、static型数据在内存中如何存储?(变量存放位置)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
const、static型數(shù)據(jù)在內(nèi)存中如何存儲(chǔ)?(變量存放位置)
static int val_a = 1 ; // 初始化的靜態(tài)變量 int val_b = 2 ; // 全局變量 const int val_c = 3 ; // const 全局變量 static int val_d ; // 未初始化的靜態(tài)變量 int val_e ; // 未初始化的全局變量int main(){static int val_f = 5; // 初始化的局部靜態(tài)變量static int val_g; //未初始化局部靜態(tài)變量int val_h = 6; //初始化局部變量int val_i; //未初始化局部變量const int val_j = 7; //const局部變量return 0;}①static無(wú)論是全局變量還是局部變量都存儲(chǔ)在全局/靜態(tài)區(qū)域,在編譯期就為其分配內(nèi)存,在程序結(jié)束時(shí)釋放,例如:val_a、val_d、val_h、val_i。
②const全局變量存儲(chǔ)在只讀數(shù)據(jù)段,編譯期最初將其保存在符號(hào)表中,第一次使用時(shí)為其分配內(nèi)存,在程序結(jié)束時(shí)釋放,例如:val_c;const局部變量存儲(chǔ)在棧中,代碼塊結(jié)束時(shí)釋放,例如:val_j。
③全局變量存儲(chǔ)在全局/靜態(tài)區(qū)域,在編譯期為其分配內(nèi)存,在程序結(jié)束時(shí)釋放,例如:val_b、val_e。
④局部變量存儲(chǔ)在棧中,代碼塊結(jié)束時(shí)釋放,例如:val_h、val_i。
注:當(dāng)全局變量和靜態(tài)局部變量未賦初值時(shí),系統(tǒng)自動(dòng)置為0。
總結(jié)
以上是生活随笔為你收集整理的const、static型数据在内存中如何存储?(变量存放位置)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: a为数组名。sizeof(a)和size
- 下一篇: 交换和路由的区别?VLAN的特点?