Q:

Different syntax of structure in C

What are the different syntax of c structure? How do decode this :
struct p {
    char a[1];
    int b;
    int *a;
    int value;
};
struct p q[] = {
    {"a",      0, &b, C},
    {"J",      0, &k, l}
};

I found a another discussion here but didn't encounter this type.

A:

q is the array of structure of type p.
p has following elements:

char pointer
any type (int,char,short etc. even a pointer is possible)
pointer to any type
should be a constant 

The syntax is actually initializing q[0] and q[1]

