牛商網(wǎng)做網(wǎng)站要多少錢seo最新技巧
一.指針是什么
通俗的講,指針就是地址,其存在的意義就像賓館房間的序號一樣是為了更好的管理空間。
如下圖:
如上圖所示,指針就是指向內(nèi)存中的一塊空間,也就相當(dāng)于地址
二.一個(gè)指針的大小是多少
之前我們學(xué)習(xí)過,如何使用 sizeof 去計(jì)算類型所占空間的字節(jié)大小,所以接下來嘗試使用該“關(guān)鍵字”計(jì)算各種類型指針?biāo)伎臻g大小
? ?這里定義了三個(gè)不同類(分別是Int char float)但為什么計(jì)算出的結(jié)果都是 4 呢?
? ?之前我們學(xué)習(xí)的時(shí)候(char是1個(gè)字節(jié),int是四個(gè)字節(jié))但這里為什么沒有區(qū)別?
其實(shí),無論什么類型的指針,他所占的空間大小是由計(jì)算機(jī)來決定的(32位計(jì)算機(jī)是四個(gè)字節(jié),64是八個(gè)字節(jié)!)那么問題來了,既然所占空間的字節(jié)大小都一樣,那么為什么還要區(qū)分類別?有什么意義?接下來讓我們繼續(xù)探討這個(gè)問題
三.指針類型
意義:
(1)決定了指針“解引用”的權(quán)限有多大
? ?解引用:指定義了一個(gè)指針變量之后對其進(jìn)行解引用的操作,等同于將其變?yōu)橐粋€(gè)普通的變量。具體操作如下:
int a = 10; int* pa = &a; *pa = 20;//次數(shù)就是指針解引用的操作,此時(shí)的*pa就相當(dāng)于一個(gè)普通的int型的變量
上述代碼就是“解引用”
? ? ? ? 權(quán)限的大小也就是指針訪問空間的大小,比如 int 型可以訪問四個(gè)字節(jié),char 型可以訪問一個(gè)字節(jié)。
(2)決定了指針的“步長”
? ?也就是指針走一步可以走多長,比如 int 類型的指針一次可以走四個(gè)字節(jié),char 一次可以走一個(gè)字節(jié)
為了更好的理解上圖,請看下圖: