1 # define a 10當用一維陣列通過指標的形式定義乙個陣列時,如果我們不通過*x[++i]的形式來使指標移動,那麼只能使用指向指標的指標來將指標移動,使其能夠指向下乙個位址,所以在這裡我們可以通過定義如下指標:char **a = x,此時*a就是乙個定義為指向指標x的指標,其指向的是x首位址,那麼要輸出of只需要*++a,列印即可。2int main(void)3
;5int b = 2;6
int *p = &a[0];7
int *q = &b;
8int **r = &p;
9char *x = ;
1011 printf("
%s ", *x);
1213
14 printf("
%d "
, a);
15 printf("
%d ", *p);
16 printf("
%d ", *q);
17 printf("
%d ", **r);
18 printf("
%d ", *r);
19 printf("
%d "
, p);
20 printf("
%d "
, r);
2122
return0;
23 }
我們有定義int *y,因此實用*y,而這裡定義了**y,但是依然使用的是y,這個應該是告訴編譯器,接下來要使用乙個指向指標的指標結構,雖然使用的是*y,但是它已經指向另乙個指標了,編譯器也有相關顯示:
這裡再補充乙個知識點,如果定義了i,j作為陣列引數使用我們針對二維陣列還可以用*(*(y+i)+j)形式呼叫,知識點在二維陣列介紹的地方,由於y位置是二維陣列開始位置,+i、+j對應指向行列,可用來列印相應字元。
指向指標的指標
理解二級指標,關鍵是理解指標的儲存方式和意義。這裡以指向int型指標的指標為例,梳理一下二級指標在記憶體分配中 的奧妙.include using namespace std int main int p a int point p cout a a endl p p endl p p endl p...
指向指標的指標
這幾天我下意識地琢磨到底 錯了,今天猛然明白了他的想法,其實這個技術點我早已掌握,只是當時對問題未深入思考,把握得較模糊,一時沒洞察他的思路,疏忽了。問題大概是這樣的 寫乙個函式,將乙個二維陣列作乙個變換。void rotate array 開闢備份空間 根據變換要求將元素一一賦值 因為這個方法並不...
指向指標的指標
一 回顧指標概念 讓我們先回顧一下指標的概念吧!當我們程式如下申明變數 short int i char a short int pi 程式會在記憶體某位址空間上為各變數開闢空間,如下圖所示。圖中所示中可看出 i 變數在記憶體位址5的位置,佔兩個位元組。a變數在記憶體位址7的位置,佔乙個位元組。接下...