對指標變數的淺顯理解

2021-09-04 21:39:53 字數 790 閱讀 1854

轉換:變數名其實是乙個符號位址,而變數的記憶體位址就是變數的實體地址(也叫指標)。程式編輯完後,通過編譯器,將符號位址(變數名)轉化為變數的實體地址,才能實現對變數(記憶體裡)的資料進行操作。

二、指標變數 p

作用:是用來存放普通變數位址(實體地址)的變數。換句話說,指標變數裡面的值就是位址。

&p: 這是指標變數的位址,二級指標變數存放一級指標變數的位址;**指標變數存放二級指標變數的位址。所以,二級指標變數的值就是一級指標變數的位址,**同理。

*p : *是取值運算子,*p表示指標變數指向的普通變數位址裡的內容(資料)。

小結:指標就是位址,位址就是指標

指標變數是乙個特殊的變數,因為它儲存的是普通變數的位址

如果指標變數p儲存了變數a的位址,那麼稱作p指向了a,此時,p就等同於變數a,對p的操作就會影響到a的值。

同一時間,乙個指標變數只能指向乙個普通變數的位址;但多個指標變數可以指向同乙個普通變數的位址。

例:int a=1;//定義整形變數並賦值

int *p=&a;//定義指標變數並賦值。p是int型別的指標變數,這裡儲存了a的位址。

printf("%d",*p);//輸出p指向變數的值,即a的值。

int **q;//定義二級變數

q=&p;//二級變數儲存的是一級變數在記憶體中的位址

printf("%d",q);//輸出一級指標變數p在記憶體中的位址

printf("%d",*q);//輸出一級指標變數p的值,即a的位址

printf("%d",**q);//相當於 *(*q),輸出a的位址裡的值,即1.

對TCP IP的淺顯理解

前段時間做了乙個開發,涉及到網路程式設計,開發過程比較順利,但任務完成後始終覺得有一些疑惑。主要是因為對網路協議不太熟悉,對一些概念也沒弄清楚。後來 我花了一些時間去了解這些網路協議,現在對tcp ip網路協議有了初步的認識,在這裡總結出來,可以梳理一下我對網路協議的理解,加深印象.話說兩台電腦要通...

對後端開發的淺顯理解

一直以來在學各種流行框架,比如spring全家桶啊,shiro啊,activiti,還有和各種中介軟體的整合 只管著學就完事兒了,但越學越迷茫,是時候做個階段性的總結了 後端開發在我的理解,是書寫跑在伺服器端的程式,保證伺服器能經受得起大量使用者的訪問,其本質就是對資料庫的crud,以下用mysql...

對wondows服務的淺顯理解(逐步加深)

windows service簡介 乙個windows服務程式是在windows作業系統下能完成特定功能的可執行的應用程式。windows服務程式雖然是可執行的,但是它不像一般的可執行檔案通過雙擊就能開始執行了,它必須有特定的啟動方式。這些啟動方式包括了自動啟動和手動啟動兩種。對於自動啟動的wind...