C对我来说就像中文一样,但是我需要处理一些代码
struct Message {
unsigned char state;
};
char state [4][4] = { "OFF", "ON", "IL1", "IL2" };
这是一个接收消息的简单服务器。它的结构部分是显而易见的,但那就是char数组的东西。这是否说4个不同的char数组,每个包含4个字符?到底发生了什么?我知道这听起来很愚蠢,但我无法弄明白。
答案 0 :(得分:2)
这意味着state
是一个包含4个char数组的数组,每个数组都是4个char的数组,并使用值“OFF \ 0”,“ON \ 0”,“IL1”初始化它们\ 0“和”IL2 \ 0“
+----+----+----+----+
state => |OFF |ON |IL1 |IL2 |
+----+----+----+----+
^state[0]
^state[1]
^state[2]
^state[4]
答案 1 :(得分:2)
这是一个二维数组。它创建了一个包含4个元素的数组,每个元素都是一个4 char的数组。
答案 2 :(得分:2)
这是否说4个不同的char数组,每个包含4个字符?
这是完全正确的:state
是一个包含四个char
子阵列的数组。
每个子阵列长度为chars
。相应的字符串文字("OFF"
等)用NUL填充到四个字符,并复制到子数组中。
答案 3 :(得分:0)
char state [4] [4]是一个2维数组,每行有4行,每行4列。您分配的值将存储在状态[0] [0],状态[0] [1],状态[0] [2],状态[0] [3]的位置。
答案 4 :(得分:0)
在C中,您将字符串处理为char*
或char
的数组。因此,当你有一个字符串数组时,你有一个字符数组的数组。