從指標到指向指標的指標 個人理解!

2021-09-01 12:57:20 字數 2097 閱讀 9544

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 ...