c/c++是工科學生必不可少的課程。本人是電子通訊行業的,客觀上說沒有計算機、軟工專業的學生更加專業!但是我們也得會程式設計,不然的話畢業以後沒有飯碗啊!
下面寫一下個人對指標的理解。首先,我們要知道定義乙個變數就會在記憶體中開闢乙個空間,這個空間就是儲存這個數的。
例如:
int value=2131;
計算機會給變數 value 開闢4個位元組的記憶體用來儲存2131這個整型數。那麼我們如何得知這個記憶體究竟在哪個位置呢?列印出來,其實很簡單,一句話既可以搞定:我們定義乙個整數型的指標:
int* p=new int;//定義指標p
p=&value;//這句話就是指標p指向了value的位址
這樣一來下邊兩句話所輸出的就是一模一樣了:其實還有很重要的一件事沒有說,那就是*p,其實我們所設定的value的值就是*p:
cout<
#include using namespace std;
int main()
{ int value=2131;
int* p=new int;
//int** pp=new int;
//int*** ppp=new int;
p=&value;//使指標p指向value的位址
畫出記憶體分配:
cout其結果為: &p : 0018ff1c;
於是上表就變成了:
以此類推,我們可以推出「指向指標的指標」以及「指向指標指標的指標」等等等~~~
不妨先把上圖擴充套件一下:
內容代表的是數值,這裡無法表示的數用括號括起來。只要你願意,完全可以這麼寫:int****...* pppp...p;(雖說這麼寫好像沒什麼卵用);不妨試試&ppp、ppp、*ppp、**ppp、***ppp分別是什麼吧!具上述的個人推論,我有一系列大膽的想法:
2:ppp=&pp;
3:*ppp=pp=&p;
4:**ppp=*pp=p=&value;
5:***ppp=**pp=*p=value;
讓我們擼出**檢測一下吧!
不妨我們再來總結下那個表吧,注意顏色相同則輸出的結果相同:
如何理解指向指標的指標?
我在一篇教程中看到下面這段,它描述指向指標的指標是如何運作的。引用文章相關段落如下 int i 5,j 6,k 7 int ip1 i,ip2 j 現在我們可以這麼寫 int ipp ip1 那麼現在指標 ipp 指向了 ip1,ip1 指向了 i。ipp 就是 ip1,ipp 就是 i,或者說是 ...
如何理解指向指標的指標?
原文 我在一篇教程中看到下面這段,它描述指向指標的指標是如何運作的。引用文章相關段落如下 int i 5,j 6,k 7 int ip1 i,ip2 j 現在我們可以這麼寫 int ipp ip1 那麼現在指標 ipp 指向了 ip1,ip1 指向了 i。ipp 就是 ip1,ipp 就是 i,或者...
個人對指標的指標理解
每次一看到兩個 號,就頭疼,終於在一次看源 時,看了半天才弄明白其中含義,所以寫一寫對指標的指標的理解。int main 以乙個小例子來說明 我們將a指標稱為一級指標 因為a指標變數儲存的位址儲存的是乙個具體的數值或者字元,反正不再是位址值 b稱為二級指標,因為b是指向指標的指標,以此類推long ...