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番目の数値が出力され、出力は5になります。
次に、2次元配列を定義する方法を見てください。
構造は1次元配列に似ています
int arrayaa [ 10 ] [ 10 ];
このようにして、10行10列の100個のint要素で構成される 2次元配列の配列型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; }
このコードを1つずつ見てください
最初に2つの配列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にポイントします。