先看乙個例子:
void get_addr_num(unsigned int *p)
int main()
輸出結果為
0123456
個人理解:
首先,p為乙個變數,其記憶體上儲存的值為0,通過對p進行&取址,將p所在的記憶體傳遞給函式get_addr_num,而函式中將傳進來的記憶體 *賦值,將p的記憶體儲存的值賦為123456,因此後面變數p的記憶體上儲存的值也就為123456.
總結:(資料型別 *)名稱–>定義乙個名稱為記憶體
名稱為&名稱上儲存的值
記憶體–>記憶體上的儲存的值
因此名稱–>名稱作為位址指向的值
而如果p為變數,則&p–>取變數p的記憶體
當然使用:
unsigned int *p_child;
p_child= (unsigned int *)p;就可以將前面p通過函式所改變的值作為乙個位址值賦給記憶體p_child。
個人對指標的指標理解
每次一看到兩個 號,就頭疼,終於在一次看源 時,看了半天才弄明白其中含義,所以寫一寫對指標的指標的理解。int main 以乙個小例子來說明 我們將a指標稱為一級指標 因為a指標變數儲存的位址儲存的是乙個具體的數值或者字元,反正不再是位址值 b稱為二級指標,因為b是指向指標的指標,以此類推long ...
個人關於指標的理解
指標是什麼?如何理解指標?因為指標是抽象的,所以這裡我把它擬物化,這樣解釋也許跟容易懂。指標的專業解釋是 指標是記憶體單元的編號。說明 以下的黑方框都代表乙個位元組 1 對於記憶體。我們一般認為記憶體的基本單位是位元組,記憶體空間由很多位元組組成的。記憶體可以儲存資料,所以我們把每個位元組當做是乙個...
個人c語言中指標的理解
定義指標 int p int i p i p是指向i位址的指標 p 10 指的是i的值變成了10指標在使用前一定要賦值 確定指標指向 為指標變數賦的值必須是乙個位址 將指標變數初始化為空指標,意為該變數不指向任何值 int ptr null 將變數位址賦值給指標 int a int p a 或者 i...