變數,常量,靜態變數儲存的位置
常見的儲存區域可分為:
1、棧
由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。
2、堆
由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程式設計師沒有釋放掉,程式會一直佔用記憶體,導致記憶體洩漏,在程式結束後,作業系統會自動回收。
3、自由儲存區
由malloc等分配的記憶體塊,它和堆是十分相似的,不過它是用free來釋放分配的記憶體。
4、全域性/靜態儲存區
全域性變數和靜態變數被分配到同一塊記憶體中,在以前的C語言中,全域性變數又分為初始化的和未初始化的,在C++裡面沒有這個區分了,他們共同佔用同一塊記憶體區。
5、常量儲存區
這是一塊比較特殊的儲存區,他們裡面存放的是常量,不允許修改(當然,你要通過非正當手段也可以修改)。
例1:C語言程式
- int x;
- void main()
- {
- }
變數x儲存在記憶體哪個區域?
答:在採用段式記憶體管理的架構中,BSS段(bss segment)通常是指用來存放程式中未初始化的全域性變數的一塊記憶體區域。
BSS是英文Block Started by Symbol的簡稱。BSS段屬於靜態儲存區。
例2:static全域性變數與普通全域性變數有什麼區別?
答:static全域性變數和普通全域性變數儲存區域相同,不同的是:
static全域性變數只在宣告此static全域性變數的檔案中有效;
普通全域性變數對整個源程式都有效,當此源程式包含多於一個檔案的程式時,對其他檔案依然有效。
例3:static區域性變數與普通區域性變數的區別?
答:static區域性變數的儲存區為靜態儲存區,普通區域性變數的儲存區為棧;
static區域性變數生存週期為整個源程式,但是隻能在宣告其的函式中呼叫,並且其值與上一次的結果有關;而普通區域性變數的生存週期為宣告其函式的週期,超過特定的範圍其值會被重新初始化;
static區域性變數如果未初始化其值預設為0,而普通區域性變數則不確定。
轉載自http://blog.csdn.net/xl890727/article/details/12657073
相關推薦
變數,常量,靜態變數儲存的位置
常見的儲存區域可分為: 1、棧 由編譯器在需要的時候分配,在不需要的時候自動清楚的變數的儲存區。裡面的變數通常是區域性變數、函式引數等。 2、堆 由new分配的記憶體塊,他們的釋放編譯器不去管,由我們的應用程式去控制,一般一個new就要對應一個delete。如果程
Java儲存機制——棧、堆區別(變數,常量,String舉例)
Java的6種儲存儲存地址及其解釋 暫存器(register):這是最快的儲存區,因為它位於不同於其他儲存區的地方——處理器內部。但是暫存器數量極其有限,所以暫存器根據編譯器需求來進行分配,我們無法控制。 堆疊(常稱為棧:stack):位於通用RAM中。它通過它的“
三:go語言變數,常量,列舉,布林
1:一個包下面可以有多個人原始檔 2:import按照書序匯入載入(優先執行檔案裡的init方法) 3:類型別名不能參加正常運算(要同一個型別的前提下才行) 4:申明的變數沒有使用,也會報錯 5:定義包名 -> 最好資料夾唯獨定義包名 6:var a,b,c = 11,21,31
php變數和常量,常用運算子
1.變數 •變數不需指定資料型別(弱型別) •變數名必須以$開頭 •命名規則:由英文字母、數字、下劃線組合,不能數字開頭 •對大小寫敏感 $name='張三';//直接使用變數,沒有指定資料型別 $age='20'; echo $name;//輸出變數的值 e
Java中變數和常量,關鍵字和識別符號
Java語言基礎 識別符號的含義: 可以理解為有關名字,用來標識類名、變數名、方法名、陣列名、檔名的有序字元序列。 Java中的識別符號: 由任意的字母、下劃線、美元符號和數字組成,並且第一個字元不能是數字,識別符號不能是Java中的保留關鍵字。 注意:Java中嚴格區分
JAVA基礎----變數,常量,運算子
一:資料型別 java資料型別分為簡單型別和引用型別。 以下為資料型別分類: 二:裝箱和拆箱 1.byte:初始值:0 包裝類:Byte; char:初始值:\u0000 包裝類:Character short:初始值:0 包裝類:Character int:初始值:0 包裝類:Integ
關鍵字,識別符號,註釋,常量,進位制轉換,變數
關鍵字 被Java語言賦予特定含義的單詞。 特點: 組成關鍵字的字母全部小寫。 注意事項: A:goto和const作為保留字存在,目前並不使用。注意:保留字在jdk的新版本中可能會提升為關鍵字。 B:類似於Notepad++這樣的高階記事本會對關鍵字有特殊顏色標記。 例項程式碼
Python學習之旅_01day:變數和常量,變數輸入,縮排,if條件,記憶體回收機制
1.變數和常量1.1 變數是為了儲存程式運算過程中的一些中間結果,為了方便日後呼叫1.2 變數存在一定的描述性,讓大眾一看就知道該變數的用途 1.3書寫方式 變數的命名規則 1. 要具有描述性 2. 變數名只能_,數字,字母組成,不可以是空格或特殊字元(#?<.,¥$*!~) 3. 不能以中文為變數名
當一個類被載入後,它的靜態變數生命週期是什麼,是整個應用程式執行結束(比如java web程式,從類載入到伺服器關閉還是該執行緒執行完畢)還是別的什麼?
靜態變數在記憶體中只有一個,JAVA虛擬機器載入類的時候為其分配記憶體,位於方法區,被類的所有例項共享,其生命週期取決於類的生命週期。。。當類被解除安裝。。。靜態變數也被銷燬 取決於類載入器。如果換了一個類載入器,這個
1.4 開始第一幅“碼繪”——活用變數和常量,實現滑鼠互動
引言——如何在程式中改變繪製內容 回顧之前畫懵逼臉的程式碼,可以看出,每個語句中都是直接用數值精確指定橢圓/直線/色彩: 1 2 3 4 5 6 7 8 9 10
spring 框架,載入靜態變數配置; 初始化靜態變數, 載入配置檔案
1:普通變數的屬性變數載入 import java.io.InputStream; import java.util.Properties; import org.apache.commons.lang.StringUtils; import org.slf4j.Log
關鍵字,識別符號,常量,變數,型別轉換
關鍵字: JAVA預定義的單詞,簡而言之,有特殊含義的單詞,能夠使得開發工具變顏色的單詞。 關鍵字的特點: 1.所有字母都是小寫組成。 2.關鍵字不能夠作為識別符號。 3.java中一共有50個關鍵字,注意 const goto也是關鍵字。 const goto在java中沒有特
Java基礎語法(一)(識別符號,關鍵字,註釋,常量,變數,基本資料型別)
1.識別符號 Java中識別符號就是給程式中的變數,類,方法名命名的符號。 規則:1.可以又字母、數字、下劃線(_)和美元符號($)組成,但是 2.不能是java
黑馬程式設計師————c語言基本知識——資料,識別符號,常量,變數,printf ,scanf等基本知識
分類:ios學習筆記 一.資料型別: 1.基本型別(整型、字元型、浮點型、列舉型別), 2.構造型別(陣列型別,結構體型別,共用體型別), 3.指標型別, 4.空型別 二.標示符: 只能由字母、數字或下劃線組成。且第一個不能為數字,不能為C 語言所
利用vgg預訓練的情況下,已下載的權重儲存位置
在做深度學習實驗的時候,踩了很多坑。尤其是資料的載入,以及所下載權重,不知道存放在何處,導致載入模型時候,還是會從網上下載,不是遇到下載到一半因為網路原因中斷,就是下載時間太長。雖然網上說的特簡單,但在實際當中,因為對Linux命令不熟悉,還是摸索了好久。以下為
Java中靜態常量和靜態變數的區別
如下:測試java中靜態常量和靜態變數區別的樣例,表明兩者載入時的區別。StaticClass類中定義了靜態常量FIANL_VALUE和靜態變數VALUE,靜態程式碼塊的列印語句表示類被載入:publi
SpringBoot 自定義filter 和 interceptor,自定義靜態檔案存放位置
上篇分享我們已經有了一個最基礎具有登陸驗證功能 的SpringBoot web專案,本篇對照之前SpringMVC 的xml配置,闡述SpringBoot 中的filter 和 interceptor。 一、web.xml中的filter 和 SpringBo
01.Java關鍵字,常量,變量,數值類型
ati 標識 類繼承 大寫 起名字 運行 native 顯示錯誤 第一個 2.1.關鍵字 1.用於定義訪問權限修飾符的關鍵字:private ,protected ,public 1)private (私有的): private 關鍵字是訪問控制修飾符,可以應用於類、方法
全域性變數、類靜態變數及函式區域性靜態變數的初始化順序
What is the lifetime of class static variables in C++? First the list of possibilities. Namespace Static Class Static Local Static
go的變數、常量以及判斷變數的資料型別
1.定義變數 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } span.s1 { font: 12.0px ".PingFang SC" } var 變數名 型別 =value