一种令人困惑的方式来定义C结构

时间:2015-09-03 02:26:49

标签: c

我是C的新手,我偶然发现了这个c-structure:

typedef struct
{
   int dog;
   int cat;
} FOO;

typedef struct
{
   int  id;
   FOO* pRow[0]
} BAR;

我知道基本的c和c ++,但我不知道以下一行的动机:“FOO * pRow [0]”。

如果作者想要定义一个指向FOO数组的指针,那么他/她应该将其定义为“FOO * pROW”,对吗?为什么pROW [0]代表这种情况呢?

请赐教。 谢谢!

1 个答案:

答案 0 :(得分:-2)

pRow是一个指针数组。第一个元素pRow[0]指向FOO结构。

如果你写FOO* pRow,那么pRow只是一个指针