首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

申明结构体类型解决方案

2012-04-26 
申明结构体类型typedef struct QNode{int datastruct QNode *next}QNode,*QueuePtr这个里面QNode出现两

申明结构体类型
typedef struct QNode{
  int data;
  struct QNode *next;
}QNode,*QueuePtr;
这个里面QNode出现两次。
1.如果将下面的QNode去掉,只剩上边的QNode,算不算定义了一个QNode类型?
2.如果将上边的QNode去掉,下面两个类型定义有没有问题?

[解决办法]
1. 假如你把下面的去掉你将不能直接使用QNode 而要使用struct QNode
2. 假如你把上面的QNode去掉struct QNode *next;将没办法识别
[解决办法]
typedef struct QNode(1){
int data;
struct QNode(2) *next;
}QNode(3),*QueuePtr;

QNode(1):声明了一个结构类型,其名字是QNode,可以通过struct QNode来定义变量。
QNode(2):使用前面的声明struct QNode来定义一个变量next为指向struct QNode类型的指针。
QNode(3):使用typedef为struct QNode起一个名字为QNode的别名,这样QNode与struct QNode是一样的。
QueuePtr:使用typedef为struct QNode*起一个名字为QueuePtr的别名,这样QueuePtr与struct QNode*是一样的。

热点排行