首頁技術(shù)文章正文

c語言指針詳解:什么是指針?

更新時間:2020-09-18 來源:黑馬程序員 瀏覽量:

內(nèi)存地址就是指針,是一個常量,通過指針可以訪問內(nèi)存中存儲的數(shù)據(jù)。例如,定義一個int類型的變量,示例代碼如下:

int a=10;

上述代碼定義了一個int類型的變量a,存儲了整型的數(shù)據(jù)10,編譯器會根據(jù)定義變量的類型為變量a分配4字節(jié)的連續(xù)內(nèi)存空間。假如這塊連續(xù)空間的首地址為0x0037FBCC,變量a占據(jù)0x0037FBCC~0x0037FBD0內(nèi)存區(qū)域共4個字節(jié)的空間,0x0037FBCC就是變量a的地址。變量a在內(nèi)存中的存儲如圖1所示。

1600416819967_內(nèi)存地址.png

在圖1中,變量a的地址為0x0037FBCC,0x0037FBCC就是指向變量a的指針,通過該指針可以訪問變量a。

如果有一個變量專門用來存放地址(指針),這個變量就被稱為“指針變量”。指針和指針變量是兩個完全不同的概念,指針是一個地址,而指針變量是存放地址(指針)的變量。

在C語言程序中,定義指針變量的語法格式如下:

變量類型 *變量名;

關(guān)于上述語法格式的介紹如下:

(1)變量類型指的是指針指向的變量的數(shù)據(jù)類型,即指針類型在內(nèi)存中的尋址能力,如char類型決定了指針指向1個字節(jié)地址空間,int類型決定了指針變量指向4個字節(jié)地址空間。

(2)*表示了定義的變量是指針類型。

(3)變量名是存儲內(nèi)存地址的名稱,即指針變量,其命名方式遵循標(biāo)識符命名規(guī)則。

下面的代碼定義了不同數(shù)據(jù)類型的指針變量,具體如下:

char* i;
int* t;
double* c;
long* a;
long double* s;
unsigned int* T;

上述代碼定義了各種類型的指針變量,在實際開發(fā)中,人們總會把指針變量簡稱為指針,如指針變量i往往會簡稱為指針i,但讀者要理解其中的含義。

若將編寫程序比喻成購買火車票,程序執(zhí)行就類似于驗票乘車去往目的地。如果把火車當(dāng)作計算機內(nèi)存,那么火車上有順序排列的座位號相當(dāng)于內(nèi)存中的地址編號,座位上的乘客相當(dāng)于存儲在內(nèi)存中的數(shù)據(jù),通過座位號可以準(zhǔn)確找到乘客,類似于使用地指針訪問內(nèi)存中的數(shù)據(jù)。

如果把乘務(wù)員比作指針變量,乘務(wù)員通過查看座位號就能確認(rèn)乘客信息,這就好比通過內(nèi)存地址獲取內(nèi)存中的數(shù)據(jù)。


猜你喜歡:

C語言的指針學(xué)起來很難嗎?

C/C++:指針數(shù)組和數(shù)組指針淺析

C/C++知識點:指針的三點精華

C/C++函數(shù)指針簡單講解
C/C++培訓(xùn)課程



分享到:
在線咨詢 我要報名
和我們在線交談!