-
當指標變數 pp 所指的變數 ip 也是指標時,pp 是指向指標的指標,指標變數 pp 是多級指標。 (以常用的二級指標為例) 二級指標型別是實際運輸分支上(一級)指標變數的位址。 基型別為 int 的指標變數 p 定義如下:
int *p,n;變數 p 的型別為 int*,指標變數 p 可以儲存 int 變數的位址(例如 n):p=&n;n 的位址儲存在指標 p 中,即 p 指向 n * 表示 p 的型別 (int*) 是 t,即 p 是 t 型別的變數。 您可以使用基本運算 (&)p 來計算指標變數 p 的位址。
上述基本運算的結果為型別為 t*,即型別為 t* int*) 型別為 *int**,即重合是基型別為 int 的指標變數的位址,是基型別為 int 的輔助指標。 為了將上述計算的結果儲存在乙個變數中,我們需要定義乙個 t* 型別的指標變數,例如 q:t *q; ≡int*)*q; ≡int **q;變數 q 稱為基型別為 int 的二級指標變數。
以下處理點 q 到 p:q=&p;下圖描述了 int 型別變數 n、基型別為 int 的第一級指標 p 和基型別 int。
-
int **p;這是乙個多級指標。
-
(1)將輔助指標指向指標陣列的元素,並通過輔助指標指向指標陣列中的元素。
設 p 是 t 型別的指標陣列,q 是 t 型別的二級指標 t *p[n],*q; (n 是正整數常量) 語句 for(q=p,k=0; k當函式通過引數向外傳遞 t 型計算結果時,該引數應為 t* 型別。 如果型別 t 是指標型別,則引數的型別應為二級指標型別。
3) 將具有固定列數的二維陣列傳遞給函式。
-
了解多級指標的概念,掌握多級指標變數定義的方法。
了解並能夠使用多級指標陣列進行資料處理。
-
多級指標是人為定義的類別,通常與指標型別沒有直接關係。
例如,一級指標的值是某個資料的位址,二級指標的值是指標的位址。
指標步長與指標型別相關,與級別數無關。
指標的步長是它所指向的記憶體空間的大小。
例如,陣列 int n[10]; n 是指向 n[0] 的位址指標,n 的步長是 n[0] 資料型別的大小,即 int 的大小。
另乙個例子是 int *str[2]=; str 是指向“aaa”的第乙個位址的指標。 str[0] 是指向 aaa 的第乙個位址的指標(char * 型別),str 是指向 str[0] (char ** 型別)的指標,所以 str 指向的記憶體空間大小就是該型別的 (char *) 的大小,即它的步長。
-
首先,任何值都有位址,雖然一級指標的值是位址,但是這個位址作為乙個值也需要空間來儲存,空間有乙個位址,這是儲存位址值的空間的位址,二級指標就是要得到這個位址。
一級指標與其值(位址)下的空間中的資料相關聯,該資料可以是任何型別並用於任何目的,但與二級指標關聯的資料只有一種型別和乙個用途,即位址,並且指標用於兩個目的,以提供對目標的讀取或重寫, 所以二級指標是提供記憶體位址的讀取或重寫。
指標的表示式是位址,核心是關係的指標,運算子“*”的作用是根據指向關係訪問它所指向的物件,如果與B有指向關係,那麼A就是B的位址,“*a”表示通過這個指向關係間接訪問B,如果B的值也是指標, 它指向 C,那麼 B 是 C 的位址,“*b”表示對 C 的間接訪問 如果 C 是整數、實體或結構體等型別的變數,或者是儲存這些型別資料的陣列元素,那麼 B(即 c 的位址)是乙個普通的指標,稱為一級指標, 而用於儲存一級指標的變數稱為一級指標變數。
-
A(即B的位址)是指向指標的指標,稱為二級指標,用於儲存二級指標的變數稱為二級指標變數 根據b的不同情況,二級指標又分為指向指標變數的指標和指向陣列的指標
在 C++ 中,指標是變數的位址。
由於在函式傳遞引數C++---實際上只有一種形式,因此將變數的位址傳遞給函式將使函式易於修改引數的值。 >>>More