【问题标题】:a confusing way to define C structure [duplicate]定义C结构的一种令人困惑的方式[重复]
【发布时间】:2015-09-03 02:26:49
【问题描述】:

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

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] 代表呢?

请赐教。 谢谢!

【问题讨论】:

标签: c


【解决方案1】:

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

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

【讨论】:

  • 不是真的,因为你可以把它分配给N sizeof(FOO),然后就不是一个指针了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-17
  • 1970-01-01
  • 2013-03-07
  • 2019-08-18
  • 1970-01-01
  • 2021-04-23
相关资源
最近更新 更多