C++ 配列サイズ
配列のサイズを取得する
配列のサイズを取得するには、sizeof()
演算子を使用できます。
5
つの要素が含まれているのに、結果が5
ではなく20
と表示されるのはなぜですか?
これは、sizeof()
演算子が型のサイズをバイト単位で返すためです。
データ型の章で、int
型は通常 4 バイトであることを学びました。そのため、上記の例から、4 x 5 (4 バイト x 5 要素) = 20 バイトとなります。
配列の要素数を調べるには、配列のサイズを含まれるデータ型のサイズで割る必要があります。
例
int myNumbers[5] = {10, 20, 30, 40, 50};
int getArrayLength = sizeof(myNumbers) / sizeof(int);
cout << getArrayLength;
結果:
5
sizeof() を使用して配列をループ
配列とループの章では、ループ条件(i < 5
)に配列のサイズを書きました。これは、指定されたサイズの配列に対してのみ機能するため、理想的ではありません。
ただし、上記のsizeof()
からアプローチすると、あらゆるサイズの配列に対して機能するループを作成できるようになり、より持続可能になります。
書く代わりに
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < 5; i++) {
cout << myNumbers[i] << "\n";
}
次のように書くことをお勧めします。
例
int myNumbers[5] = {10, 20, 30, 40, 50};
for (int i = 0; i < sizeof(myNumbers) / sizeof(int); i++) {
cout << myNumbers[i] << "\n";
}
C++バージョン11(2011)では、「for-each」ループも使用できることに注意してください。
配列をループするさまざまな方法はさまざまなプログラムで使用される可能性があるため、知っておくとよいでしょう。
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。