存變數和讀變數記憶體相關問題

2021-07-10 05:19:41 字數 454 閱讀 8536

儲存:

堆是malloc,relloc和calloc分配的空間,先定義的變數儲存在低位址,後定義的變數儲存在高位址,這是變數之間的關係。對於單個變數,如果是多位元組的變數,按小端儲存方法,低位元組放低位址,高位元組放高位址。按大端儲存方法,低位元組放高位址,高位元組放低位址。

棧是函式內變數儲存空間,先定義的變數儲存在高位址,後定義的變數儲存在低位址,這是變數之間的關係。對於單個變數,如果是多位元組的變數,按小端儲存方法,低位元組放低位址,高位元組放高位址。按大端儲存方法,低位元組放高位址,高位元組放低位址。

讀取:讀取變數的時候,都是從低位址到高位址讀取。

儲存變數的時候,都是從低位址到高位址讀取。(未經驗證)

結構體和陣列的儲存方式:

陣列本身作為乙個變數進行儲存,不同陣列之間儲存按照堆疊規則來儲存。

陣列內變數是按順序儲存的,由低位址到高位址儲存。

變數內多位元組按照大小端規則進行儲存。

變數 作用域和記憶體問題

1.1 動態的屬性 引用型別 var person new object person.name nicholas alert person.name nicholas 基本型別 var name nicholas name.age 27 alert name.age undefined1.2 複製...

JS 變數 作用域和記憶體問題

向引數傳遞基本型別時 把值從乙個變數賦值到另乙個變數 傳遞引用型別時 把這個值在記憶體中的位址賦值給區域性變數 function addten num var count 20 var result addten count console.log count 20,沒有變化 console.log...

js 變數 作用域和記憶體問題

基本型別和引用型別 屬性引用型別可以動態新增屬性,而基本型別不可以 var p new obj p.name huyuping console.log p.name huyuping var a a.name huyuping console.log a,name 出錯複製變數值 會在變數的物件上建...