3.9.3 指針的賦值和使用
在得到一個指針變量之后,指針變量的值還是一個隨機值。這個值可能是內存中無關緊要的數據,也可能是重要的數據或者程序代碼,如果直接使用是很危險的,所以在使用指針之前,必須對其進行賦值,將其指向某個有意義的數據或代碼。對指針變量進行賦值的語法格式如下:
指針變量 = 內存地址;
可以看到,對指針變量的賦值,實際上就是將這個指針指向某一內存地址,而這個內存地址上存放的就是這個指針想要指向的數據。通常我們用一個變量來保存數據,那么該如何方便地得到一個變量在內存中的地址呢?反過來,如果知道一個指針,又如何取出存放在其中的數據呢?為了解決這兩個問題,C++提供了兩個與內存地址相關的運算符——“&”和“*”。
1. “&”運算符
“&”稱為取地址運算符,如果把它放在一個變量的前面,則可以得到該變量在內存中存放的地址。例如:
// 定義一個整型變量
int N = 703;
// 取得整型變量的地址并將其賦值給整型指針
int*pN = &N;
通過“&”運算符可以取得N這個整型變量的內存地址,然后將其賦值給指針pN,也就是將指針pN指向N這個整數數據,如圖3-7所示。

圖3-7 指針和指針所指向的數據