char*
配列は次のとおりです。
char *tbl[] = { "1", "2", "3" };
sizeof
演算子を使用して、配列の要素数(ここでは3)を取得するにはどうすればよいですか?
以下は機能しましたが、正しいですか?
int n = sizeof(tbl) / sizeof(tbl[0])
はい、
size_t n = sizeof(tbl) / sizeof(tbl[0])
これが最も一般的な方法です。
配列サイズにint
を使用するのは最善のアイデアではないことに注意してください。
より短く、ほぼ間違いなく、よりクリーンなバージョンは次のようになります
sizeof tbl / sizeof *tbl
:)
はい、配列tb1の要素の数を示します。
int n = sizeof(tbl) / sizeof(tbl[0])
解釈:
sizeof(tb1)は、配列全体のサイズを示します。つまり、tb1 = バイト
sizeof(tb1 [0])は、tb1 [0]が文字値(アドレスtb1 + 0の値)= 1バイトを与えるので、文字のサイズを与えます
これら2つの分割により、要素が得られます。