首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >这是什么意思:"typedef struct{.} VNode,AdjList[20]“

这是什么意思:"typedef struct{.} VNode,AdjList[20]“
EN

Stack Overflow用户
提问于 2015-04-18 18:53:35
回答 2查看 116关注 0票数 4

我是一个C初学者,学习一些图形的数据结构。我今天在维基百科上读到一段C代码:

代码语言:javascript
运行
复制
    #define MAX_VERTEX_NUM 20
    typedef struct ArcNode
    {
       int adjvex; /* Position of Arc's Vertex */
       struct ArcNode *nextarc; /* Pointer to next Arc */
       InfoType *info; /* Weight) */
     }ArcNode; /* Node */
     typedef struct
     {
       VertexType data; /* Vertex Information */
       ArcNode *firstarc; /* Location to the first list node */
     }VNode,AdjList[MAX_VERTEX_NUM]; /* Head Node */
     typedef struct
     {
       AdjList vertices;
       int vexnum,arcnum; /* Vertex count and Arc count */
       GraphKind kind; /* type of Garph, directed, undirected..*/
     }ALGraph;`

我在这里阅读了几个相关的帖子,比如"typedef struct vs struct definitions",但是我仍然对这个用法感到有点困惑:

代码语言:javascript
运行
复制
typedef struct  {....  }VNode,AdjList[MAX_VERTEX_NUM];

那么AdjList是什么呢?它是一个数组?如果是的话,这句话的意思是:

代码语言:javascript
运行
复制
AdjList vertices;

谢谢。参考资料:http://zh.wikipedia.org/wiki/%E9%82%BB%E6%8E%A5%E8%A1%A8

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-18 18:55:10

AdjList是一个大小为MAX_VERTEX_NUM的数组,其类型为struct中定义的类型。

C语言的声明有点好笑。

代码语言:javascript
运行
复制
typedef struct {...} AdjList[MAX_VERTEX_NUM]

应该读取,因为AdjList被定义为结构中定义的类型的大小MAX_VERTEX_NUM数组。这是一种类型,这意味着您可以声明变量为此类型的实例。

票数 5
EN

Stack Overflow用户

发布于 2015-04-18 19:06:58

AdjList是大小为MAX_VERTEX_NUMstruct中定义的类型的数组。

一个简单的例子演示了正在发生的事情:

代码语言:javascript
运行
复制
typedef int myintarray[10];

int main()
{
   myintarray array; // same as "int array[10]"

   array[2] = 2 ;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29721462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档