C语言中结构的语法不同

时间:2015-02-19 10:10:01

标签: c struct

c结构的不同语法是什么?怎么解码这个:

struct p {
    char a[1];
    int b;
    int *a;
    int value;
};
struct p q[] = {
    {"a",      0, &b, C},
    {"J",      0, &k, l}
};

我发现了另一个讨论here,但没有遇到这种类型。

2 个答案:

答案 0 :(得分:5)

qp类型的结构数组。

p有以下要素:

  1. 字符指针

  2. 任何类型(int,char,short等甚至可以指针)

  3. 指向任何类型的指针

  4. 应该是一个常数

  5. 语法实际上是在初始化q[0]q[1]

答案 1 :(得分:1)

这就是声明一个名为q的类型为struct p的数组,它实际上并没有定义一个结构。初始化列表中的{" a",0等等}正在创建通过定义结构域字段的值来填充数组的第一个和第二个元素的结构,以及这样做,在堆栈上创建结构的实例。

struct p似乎包含一个 字符*,

一个整数,

其他一些指针

和其他东西(可能是整数)。