一級指針:
- 定義: int *p; // 定義一個int型的指針變量('*'的此時不是解引用運算符的作用,而是表示聲明一個指針變量)
- *取址運算符'&': &p; //訪問指針變量p在內存中的地址
- *解引用運算符'*': *p; //訪問指針變量p所指向地址的內存的數據
- *直接使用: p ; //訪問指針變量p所指向的地址
- 賦值: int n=1;p=&n; //將int型在內存中的地址賦給指針變量p
- 輸出: cout<<*p<<&p<<p; //輸出指針變量p所指向對應地址內存的數據,p在內存的地址,p指向的地址
二級指針:
- 定義: int **p2; //定義一個int*型二級指針變量 *注意:二級指針只能指向一級指針的地址
- 賦值: int *p,n=1;p2=&p; //確定二級指針p2指向哪個一級指針
- 輸出: cout<<**p2<<*p2<<&p2<<p2; //分別輸出p2跳越2次地址后最終的數據,p所指向的地址,p2在內存的地址以及p在內存的地址
代碼實例:
#include<iostream> |
注意attention:
- 二級指針只能被一級指針變量賦值,當被其他類型賦值時會出現報錯
- 圖示: