3

これらは、2D 配列に使用される表記法です。

char (*names)[5] ;

char* names[] = {"Jan","Feb"};

char names[3][5] = { Initializers..};

私はこれらの表記の間で非常に混乱しています。

最初のものは、名前が5文字の配列へのポインタであることを宣言します。

names -> a char pointer -> "Some string"

3 番目のものは異なるメモリ マップを持ちます。つまり、上記のものとは異なり、通常の配列のように行優先順に格納されます。

2 番目の表記は、1 番目および 3 番目の表記とどのように似ているか、または異なるか?

また、それらを関数に渡すことは、まったく別の話です。2 次元配列をタイプ 2 であると宣言すると、ダブル ポインター ( ) として渡されますchar** namesが、タイプ 1 またはタイプ 3 である場合は、宣言で列を指定する必要があります。

これらの問題をより明確にするのを手伝ってください。ありがとう。

4

1 に答える 1