C語言指標整理

2021-08-30 13:24:08 字數 1103 閱讀 1814

記憶體是按照位元組編址的,所以它的定址單位是位元組(byte),而乙個位元組又有是由8位(bit)的0或1組成。

所以這樣的話4gb記憶體的定址空間就從0x00000000到0xffffffff,總共有

明白記憶體位址後,指標實際上就是記憶體位址,指標變數則是儲存指標的變數,也即是儲存了記憶體位址。下面對指標變數從下面幾個方面進行分析。

指標變數的型別

定義乙個int* p為例,這個指標變數的型別就是int *。

指標變數所指向的資料型別

p變數所指向的型別是int資料型別,編譯器通過指標所指向的這片記憶體區域作來決定這片記憶體區域存放什麼資料型別,因為int型別是4個位元組的大小,所以從p指標變數指向的記憶體位址到後四位元組這片記憶體區域就存放了乙個int的資料型別。

借這個例子就可以很好理解c語言中malloc函式了。malloc函式作用是分配指定大小的連續記憶體空間,並返回這個記憶體空間的首位址,而這個位址指向的資料型別不明確,所以通常還需要對它進行強制轉換,這樣就得到了乙個指向int型別資料的記憶體首位址。

void test()
指標變數的大小通過上面的分析,指標變數的值就是它指向的記憶體位址,是乙個數值型別,無論它指向什麼資料型別,這個數值型別都是佔據了4個位元組,也就是說指標變數本身就佔據了4個位元組。

int main()

*運算子稱作指標運算子或者間接引用運算子,它的作用就是取乙個指標變數所指向的記憶體區域所儲存的資料值。

&運算子稱作取位址符,它的作用就是取乙個變數所在的記憶體位址。

void test()
位址運算子應用時,通常結合指標變數。

void test()
ref:

c語言(徹底理解指標和位址,徹底!)

c語言指標詳解(經典,非常詳細)

整理C語言指標

指標的靈活運用使得c語言更加強大,指標是c語言中十分重要的部分,可以說指標是c語言的靈魂。當然指標不是萬能的,但沒有指標是萬萬不能的,有些操作沒有指標是辦不到的,如動態記憶體分配。鑑於學習指標的必要性,好好整理一下哈哈哈 1 指標 我們使用的計算機記憶體為8g,系統為了更好地管理我們的記憶體,就為記...

c語言指標知識整理

謹以此文送給初入程式設計坑的女票梁童鞋。目錄 基本概念 位址和指標的關係 指標操作 指標運算 指標與陣列 指標與一維陣列 指標與二維陣列 指標陣列 指標 是指向另一變數在記憶體中位置的位址。在程式中定義乙個變數,進行編譯時就會給這個變數在記憶體中分配乙個位址,通過訪問這個位址即可以找到所需變數,這個...

C語言指標整理2

例題 編寫程式把乙個陣列中的所有內容前後顛倒.比如陣列中原有內容是1 2 3 4 5 顛倒後內容是5 4 3 2 1 要求使用指標編寫程式 顛倒陣列內容 include void main num 0 int p start arr,p end arr 4 while p start p end f...