指標的型別 指標所指向 指向指標的引用

2021-08-02 23:36:52 字數 988 閱讀 3947

從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部

分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各

個指標的型別:

int *ptr;//指標的型別是int*

char *ptr;//指標的型別是char*

int **ptr;//指標的型別是int**

int(*ptr)[3];//指標的型別是int(*)[3]

int*(*ptr)[4];//指標的型別是int*(*)[4]

找出指標的型別的方法是不是很簡單?

當你通過指標來訪問指標所指向的記憶體區時,指標所指向的型別決定了編譯器將把那片記憶體區里的內容當做什麼來看待。從語法上看,你只須把指標宣告語句中的指標名字和名字左邊的指標宣告符*去掉,剩下的就是指標所指向的型別。例如:

int*ptr; //指標所指向的型別是int

char*ptr; //指標所指向的的型別是char

int**ptr; //指標所指向的的型別是int*

int(*ptr)[3]; //指標所指向的的型別是int()[3]

int*(*ptr)[4]; //指標所指向的的型別是int*()[4]

在指標的算術運算中,指標所指向的型別有很大的作用。指標的型別(即指標本身的型別)和指標所指向的型別是兩個概念。當你對c 越來越熟悉時,你會發現,把與指標攪和在一起的」型別」這個概念分成」指標的型別」和」指標所指向的型別」兩個概念,是精通指標的關鍵點之一。我看了不少書,發現有些寫得差的書中,就把指標的這兩個概念攪在一起了,所以看起書來前後矛盾,越看越糊塗。

要理解r的型別到底是什麼,最簡單的辦法是從右向左閱讀r的定義。離變數最近的符號(此例中是符號&)對便利的型別有最直接的影響,因此r是乙個引用。宣告符的其餘部分用以確定r引用的型別是什麼,此例中額符號*說明r引用的是乙個指標。最後宣告的基本資料型別說明r引用的是乙個int指標。

int

*p;int

*&r = p;

指標的型別與指標所指向的型別

指標的型別和指標所指向的型別很明顯是不一樣的東西,但好多情況下卻容易忽視它們的區別。指標的型別是指標自身的型別,而指標所指向的型別是指標指向的資料 記憶體 的型別。從語法上來看,我們只要把指標宣告語句裡的指標名字去掉,剩下的部分就是這個指標的型別。如 1 int ptr 指標的型別是 int 2ch...

指標的型別和指標所指向的型別說明

2010 03 17 15 24 1774人閱讀 收藏 舉報 編譯器c 1.指標的型別 從語法的角度看,你只要把指標宣告語句裡的指標名字去掉,剩下的部 分就是這個指標的型別。這是指標本身所具有的型別。讓我們看看例一中各 個指標的型別 1 int ptr 指標的型別是int 2 char ptr 指標...

指向指標的指標

理解二級指標,關鍵是理解指標的儲存方式和意義。這裡以指向int型指標的指標為例,梳理一下二級指標在記憶體分配中 的奧妙.include using namespace std int main int p a int point p cout a a endl p p endl p p endl p...