1、指針的概念工具
要知道指針的概念,要先了解變量在內存中如何存儲的。在存儲時,內存被分爲一塊一塊的。每一塊都有一個特有的編號。而這個編號能夠暫時理解爲指針,就像酒店的門牌號同樣。學習
1.一、變量和地址開發工具
先寫一段簡單的代碼:3d
void main(){指針
int x = 10, int y = 20;對象
}blog
這段代碼很是簡單,就是兩個變量的聲明,分別賦值了 十、20。咱們把內存當作一個酒店,而每一個房間就是一塊內存。那麼「int x = 10;」和「int y = 20;」的實際含義以下:內存
去酒店訂了兩個房間,門牌號暫時用 px、py 表示開發
讓 10 住進 px,讓 20 住進 pyget
其中門牌號就是 px、py 就是變量的地址
x 和 y 在這裏能夠理解爲具體的房間,房間 x 的門牌號(地址)是 px,房間 y 的門牌號(地址)是 py。而 10 和 20,經過 px、py 兩個門牌,找到房間,住進 x、y。
1.二、指針變量和指針的類型
指針變量就是一個變量,它存儲的內容是一個指針。若是用前面的例子,能夠理解爲指針變量就是一張房卡,房卡存儲了房間號的信息。
在咱們定義一個變量的時候,要肯定它的類型。int x、char ch、float、、、在定義指針變量時也是同樣的,必須肯定指針類型。int 變量的指針須要用 int 類型的指針存儲,float 變量的指針須要用 float 類型的指針存儲。就像你只能用酒店 A 的房卡存儲酒店 A 中房間號的信息同樣。
2、變量的指針與指針變量
變量的指針就是變量的存儲地址,指針變量就是存儲指針的變量。
小編推薦一個學C語言/C++的學習裙【七一二 二八四 七零五】,不管你是小白仍是進階者,是想轉行仍是想入行均可以來了解一塊兒進步一塊兒學習!裙內有開發工具,不少乾貨和技術資料分享!
2.一、指針變量的定義及使用
(1)指針變量的定義
指針變量的定義形式如:數據類型 *指針名;例如:
如上面的定義,指針變量名爲 x、f、ch。並非*x、*f、*ch
(2)指針變量的使用
取地址運算符&:單目運算符&是用來取操做對象的地址。例:&i 爲取變量 i 的地址。對於常量表達式、寄存器變量不能取地址(由於它們存儲在存儲器中,沒有地址)。 指針運算符*(間接尋址符):與&爲逆運算,做用是經過操做對象的地址,獲取存儲的內容。例:x = &i,x 爲 i 的地址,*x 則爲經過 i 的地址,獲取 i 的內容。
代碼示例:
(3)「&」和「*」的結合方向
「&」和「*」都是右結合的。假設有變量 x = 10,則*&x 的含義是,先獲取變量 x 的地址,再獲取地址中的內容。由於「&」和「*」互爲逆運算,因此 x = *&x。
接下來作個小練習,輸入 x、y 兩個整數,而後將其中的值大的賦值給 x,小的賦值給 y。即:假設輸入 x = 8,y = 9。就將 9 賦值給 x,8 賦值給 y。
2.二、指針變量的初始化
指針變量與其它變量同樣,在定義時能夠賦值,即初始化。也能夠賦值「NULL」或「0」,若是賦值「0」,此時的「0」含義並非數字「0」,而是 NULL 的字符碼值。