int arrayaa[10];
這個表示我定義了一個int型數組,數組名字叫arrayaa,這個數組里面有10個int型數據。
那如果前面加上一個typedef,那么意思就完全變了
typedef int arrayaa[10];
表示定義了一個名字叫 arrayaa的數組類型,這個數組類型的元素類型為int,且含有10個int型數據(元素)。
同樣的道理,我也可以定義一個char類型,一個double類型等等,
我可以利用這個數組類型,去定義新的數組
舉個例子
int main(void) { typedef int arrayaa[10]; arrayaa a1; for (int i = 0; i < 10; i++) { a1[i] = i+1; } cout<<a1[4]<<endl; }
我定義了一個數組類型,名字叫arrayaa,然后利用這個數組類型定義了一個數組,名叫a1
接下來對a1進行了賦值操作,然后打印a1里面的第五個數,輸出為5.
然后看一下如何定義二維數組
和一維數組的結構是類似的
int arrayaa[10][10];
這樣就定義了一個10行10列 由100個int型元素組成的二維數組的數組類型 arrayaa
接下來我們看下面的例子:定義指針數組類型
typedef int (*arrayaa)[10];
定義了一個數組類型的指針
然后我們使用一下這個指針
int main(void) { int a2[10]; typedef int (*arrayaa)[10]; arrayaa aa; aa=&a2; a2[1] = 10; cout<<a2[1]<<endl; }
逐一的看一下這個代碼
首先定義兩個一個數組 a2,然后定義了一個和剛才數組同類型的數組類型指針 arrayaa ,用 arrayaa定義了一個變量 aa,然后將aa指向剛才定義個數組a2,並通過aa 給數組賦值打印等操作
我們也可以這樣做
int main(void) { int a2[10]; int (*arrayaa)[10]; arrayaa=&a2; a2[1] = 10; cout<<a2[1]<<endl; }
跟剛才的代碼相比,這次的就是直接定義了一個(元素類型為int 元素個數為10的數組的)指針,(而上面的例子是先定義了指針類型),將指針指向前面的a2.