请问这条C语句中 typedef struct tagNode *pNode 中*pNode是什么意思。 它可以用来表示什么?

如果*pNode是结构体指针,为什么不另外定义呢。
*pNode并不是一个普通的标量啊。 用一个结构体指针来表示结构体是否会不恰当呢。

 struct tagNode
  {
  char *pItem;
  struct tagNode *pNext;
  };
  typedef struct tagNode *pNode

struct tagNode是你自己定义的一种新数据类型,注意哦,是一种数据类型,就如同int,double一样。而typedef struct tagNode *pNode中,pNode是你定义的这种数据类型的另一个名称,通常为了书写简单。如有语句pNode a; 则表示a是一个 struct tagNode这种结构体数据类型的指针变量。如果你不习惯这种写法可以直接写为struct tagNode *a;等价于pNode a。另外你也可以用typedef这么写typedef struct tagNode pNode;那定义指针变量a就要写成pNode *a。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-05
typedef struct tagNode *pNode=typedef struct tagNode* pNode
就是定义一个tagNode指针。。
用的时候:
pNode n1;
ni->pltem;//访问pltem追问

但是用一个指针来表示一种数据数型 struct tagNode ,会不会不恰当呢?
问题一。
typedef struct tagNode a;
a *pNode;
不应该是这样的吗。

问题二。
还有,在DSP里,直接
typedef struct
{…………} a;
也可以吗?a 前面并没有一个完整的变量名,
如typedef struct tagMyStruct
{
}a;才是对的吧。

追答

用一个指针只是来表示一种数据类型地址。。。你的写法也是对的。。都可以
typedef struct
{…………} a;
也可以吗?a 前面并没有一个完整的变量名,
如typedef struct tagMyStruct
{
}a;
这两种写法我也见过,好像也行,不必去纠结这些问题,都是typedef 一种类型叫a

本回答被提问者和网友采纳
相似回答