0

Cは私にとって中国語のようなものですが、私はいくつかのコードで作業する必要があります

struct Message {
    unsigned char      state;
};

char state   [4][4] = { "OFF", "ON", "IL1", "IL2" };

これは、メッセージを受信する単純なサーバーです。その構造体の部分は明らかですが、そのchar配列のものがあります。これは、それぞれが4つの文字を含む4つの異なる文字配列があることを意味しますか?ここで何が起こっているのですか?私はこれがばかげているように聞こえることを知っていますが、私はそれを理解することができません。

4

5 に答える 5

2

これはstate、4文字の配列の配列であり、それぞれが4文字の配列であり、値「OFF \ 0」、「ON \ 0」、「IL1 \ 0」、および「IL2\0」で初期化されることを意味します。 「」

         +----+----+----+----+
state => |OFF |ON  |IL1 |IL2 |
         +----+----+----+----+
         ^state[0]
              ^state[1]
                   ^state[2]
                        ^state[4]
于 2012-05-16T13:43:07.177 に答える
2

これは2次元配列です。4つの要素の配列を作成します。各要素は4文字の配列です。

于 2012-05-16T13:43:54.700 に答える
2

これは、それぞれが4つの文字を含む4つの異なる文字配列があることを意味しますか?

その通りstateです。4つのcharサブ配列の配列です。

各サブアレイの長さは4つcharsです。対応する文字列リテラル("OFF"など)は、4文字までのNULで埋められ、サブ配列にコピーされます。

于 2012-05-16T13:44:14.643 に答える
0

最後に宣言されたcharstate[4] [4]は、各行に4列の4行を持つ2次元配列です。割り当てた値は、state [0] [0]、state [0] [1]、state [0] [2]、state[0][3]の位置に保存されます。

于 2012-05-16T13:45:08.750 に答える
0

char*Cでは、文字列を、またはの配列として扱いますchar。したがって、文字列の配列がある場合は、文字の配列の配列があります。

于 2012-05-16T13:45:40.340 に答える