欢迎各界计算机爱好者加入,弘扬极客精神!

C语言typedef struct的相关问题

0 喜欢 0 不喜欢
数据结构中图的邻接表有如下代码

typedef struct VNode{……}VNode,AdjList[20];//省略号部分不重要,我明白

如何理解AdjList数组,怎么能把一个结构体数据类型昵称成为一个数组类型呢???

解释一下这行代码吧
最新提问 1月 25, 2016 分类:C/C++ | 用户: peter (9,854 分)  

6 个回答

1 喜欢 0 不喜欢
 
已采纳
........把复杂的代码拆开看, 首先是struct部分, 你肯定明白, typedef就相当于alias的类似的作用...也就是说你每次写AdjList就相当于把Struct那一大串写了一遍.....编译器内部.
最新回答 1月 26, 2016 用户: uulake (4,106 分)  
采纳于 2月 8, 2016 用户:peter
0 喜欢 0 不喜欢
数据结构 顶点的定义,AdjList[100]也是一个类型名,定义一个含有100个元素的数组

 

最新回答 1月 25, 2016 用户: 教六先生 (6,108 分)  
1 喜欢 0 不喜欢

1) 定义一个新的结构类型

struct tagMyStruct

 int iNum; 
 long lLength; 
};

typedef为这个新的结构起了一个名字,叫MyStruct。

typedef struct tagMyStruct MyStruct;

  

最新回答 1月 25, 2016 用户: ly (4,774 分)  
0 喜欢 0 不喜欢
这个是设置节点的,节点名称为VNode,有20的节点
最新回答 1月 25, 2016 用户: yxzstruggle (3,006 分)  
0 喜欢 0 不喜欢
AdjList[20]也是个结构体名字吧
最新回答 1月 26, 2016 用户: 我是一只戴眼镜的老鼠 (5,754 分)  
0 喜欢 0 不喜欢
关于typedef struct的别名用法,我是明白的,我都在techblog上发过文章,问题是数组。

现在我懂了,其实adjlist是数组的名字,20个元素全部是VNode结构体数据类型,即这是结构体数组,C语言和Java等不一样。

Java中数组定义是中括号前面是数据类型,而C语言是中括号前面是数组名字,再往前才是数组元素的数据类型。
最新回答 2月 8, 2016 用户: peter (9,854 分)  
...