指標陣列:是指 陣列 裡面裝的是指標
陣列指標:是指標,該指標指向陣列
int * a[5]; //指標陣列
int (*b)[5]; //陣列指標
對於a,a是陣列的首位址,陣列a的元素是指標,a所指向的儲存單元大小為乙個元素的長度,如果指標長度為32位(4位元組),則a所指向的儲存單元大小為4位元組。
對於b,b是指標變數,所指向的儲存單元為有5個整型變數的陣列。
所以,a+1位址跨度為4位元組,b+1位址跨度為4*5=20位元組
接下來看一道指標陣列題
#includeusing namespace std;
int main()
; char * *pa = a;
pa++;
cout<<*pa《輸出結果為the,為什麼?
對於char * a[3]; 以*分割左右,右邊是陣列,陣列裡邊存的是指標,指標指向相對應的字串,有可能不理解它這不明明指向的是char字元嗎,怎麼就是字串了?語言是給機器翻譯的,設計語言並告訴機器怎麼解釋就可以了吧,所以站在人的思考角度強行解釋「它指向相對應的字串」是不科學的。
pa是乙個指標,它的型別與 a 相同,它的位址跨度為乙個指標元素的大小,pa指標所指向的內容是指標*pa,*pa指向字串
所以,pa++為指標陣列的第二個元素的位址,這個元素的指標內容指向字串「the」
指標與陣列,指標陣列 陣列指標
int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...
陣列 指標陣列與陣列指標
一 陣列型別 int a 10 printf a d,a 1 d n a,a 1 printf a d,a 1 d n a,a 1 輸出結果 2 陣列元素的首位址是常量,不能修改,這是為了釋放記憶體空間所必需的,否則找不到釋放記憶體空間的首位址了 3 定義乙個陣列型別 定義陣列型別的格式如下 typ...
指標陣列與陣列指標
1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...