C言語では、sizeof演算子を使うことで配列の要素数を求めることができます。sizeof演算子は変数や型のメモリサイズを返すため、これを利用します。
char型、int型、二次元配列それぞれの所得方法をまとめました。
char型
char型のサイズは1バイトです。
char x[]="uuakbjbfek";
N = sizeof(x)-1;
このNが要素数です。文字列の終わりにヌル文字が入っているため、1バイトを引きます。
ちなみにNの値は10です。
しかし、char型で要素数を所得したい場合は、strlen関数を使うことも多いです。この関数を使う際は、
#include <string.h>
と書く必要があります。
char x[]="uuakbjbfek";
N = strlen(x);
Nは10。
、、、面倒なポイントとして、日常的に使うほとんどの日本語文字は、実は3バイトです。sizeof、strlenどちらもバイト数を返す仕様なので、日本語の場合は正しい要素数は得られません。日本語でコードを書く際はバイト数に気を付けましょう。
char x[]="uuakbjbああk";
N = strlen(x);
Nは14。
int型
int型のサイズは4です。
int型
int x[]={5,3,7,5,8};
N = sizeof(x)/sizeof(int); //sizeof(x)=20,sizeof(int)=4
で所得できます。Nの値は5です。char型のサイズは1バイト、int型のサイズは4バイト、なのでこのような計算方法になるんですね!
二次元配列
int型を例にします。
多次元配列では、最初の配列の要素数のみ省略可能です。
int x[][3]={{1,3,9},{2,5,8},{3,6,9},{4,7,10}};
int x[][3]={{1,3,9},{2,5,8},{3,6,9},{4,7,10}};
行数: sizeof(x) / sizeof(x[0])
列数: sizeof(x[0]) / sizeof(x[0][0])
全要素数: sizeof(x) / sizeof(x[0][0])
行数 4
列数 3
全要素数 12
私が24歳で資産1000万達成した方法を下のリンクに載せています.
全て現実的な方法なので、知っておくと今後かなり得するはずです.