變數、記憶體、指標
1、乙個變數需要使用一段連續的記憶體存放,記憶體中的二進位制數,就是變數值。相同的二進位制數,根據變數資料型別,表現為不同的變數值
2、可以宣告乙個變數代表這段記憶體,對這個變數賦值就是對這段記憶體寫入資料,在表示式中使用這個變數就是從記憶體中讀取資料
或者說「乙個變數就是特定的一段記憶體」
3、指標,記憶體資料指標的簡稱
4、除了使用變數讀寫記憶體中的變數值外,在c語言中,還可以通過指標讀寫這些資料。這時指標指向這段記憶體的首位元組位址。
5、只有首位址是不夠的,還需要資料型別,用來指明要讀寫多少個位元組;以及怎樣把該型別的資料轉換為可以寫入記憶體的二進位制數、怎樣把讀取到的二進位制數轉換為該型別的資料。
6、int * p_i_pointer ; 是指標變數宣告語句
6.1 p_i_pointer 是乙個指標變數
6.2 int是它的基型別,p_i_pointer 可以存放任意乙個int型別變數的首位元組位址。實際上,它可以指向(儲存)記憶體中任意乙個位元組的位址。
6.3 &運算子,用於獲取某個變數的指標
int i_age=18; p_i_pointer=&i_age;
這時p_i_pointer中儲存了i_age這段記憶體的首位元組位址,也就是指標變數值是i_age 的首位元組位址; 基型別是int。
p_i_pointer只是當前值指向i_age
i_age則是始終代表存放它的那段記憶體
7、* 指標運算子 用於「使用指標(首位址和資料型別)訪問資料」。(訪問就是讀寫,存是寫入、取是讀取)。
指標變數記憶體
1 指標不同於一般變數,存的是變數的位址,在同一架構下位址長度都是相同的 cpu的最大定址記憶體空間 所以不同型別的指標長度都一樣 你輸出的4 4 4,說明指標長度為4位元組 可以記錄的位址範圍是0x00000000 0xffffffff,這個範圍才是指標變數的值 比如說乙個char 1位元組,可以...
變數 記憶體 指標 二
測試用 int li array 5 int p li array cout p 1 p 1 cout p 2 1 p 2 1 寫法有些不正常,但是合法,正常情況下會寫成 p 3 或是 p 3 結論1 是個與 類似的 按位址訪問資料 的運算子 1.在c 中,按位址訪問 寫讀 記憶體中資料有兩種方法 ...
指標變數所佔記憶體
應該說這是乙個非常基礎的問題,教科書上說指標大小和機器字長相同,即32位機指標長度為4位元組!但是對不對呢?為什麼是這樣?搜了一下相關資料。居然發現回答不統一,很多人也同樣是糊里糊塗。字長 在同一時間中處理二進位制數的位數叫字長。通常稱處理字長為8位資料的cpu叫8位cpu,32位cpu就是在同一時...