御笔剑客 发表于 2018-2-7 21:54:55

关于c++中typedef的用法

typedef struct _Node
{
   int s;
   int l;
   int c;
} Node,*pNode;
大括号后面跟的Node和*pNode的含义是什么呢?

ba21 发表于 2018-2-7 22:01:28

Node 是别名
*pNode 是定义指针别名 (是指针)

typedef struct _Node Node   用整形来理解 typedef int myint

typedef struct _Node *pNode   用整形来理解 typedef int *myint

风过无痕丶 发表于 2018-2-7 22:05:52

Node 等价于 struct_Node
pNode 等价于struct_Node *

boot 发表于 2018-2-7 22:39:01

typedef struct _Node
{
   int s;
   int l;
   int c;
} Node,*pNode;
判断typedef的意思可以先把typedef去掉再看代码的含义。
struct _Node
{
   int s;
   int l;
   int c;
} Node,*pNode;
这段代码的意思是定义一个struct _Node结构体类型的结构体变量Node
再定义一个指向 struct _Node结构体类型的结构体变量 的 指针
typedef是给已有的数据类型起了一个新的名字
你给 truct _Node结构体类型 起了新的名字Node
也给指向 struct _Node结构体类型的结构体变量的 指针类型 起了新的名字

通俗一些,就是有了那个typedef之后,你可以用直接Node定义struct _Node结构体类型的结构体变量,也可以用pNode定义一个指向 struct _Node结构体类型的结构体变量 的 指针
Node a1, a2;
pNode p1, p2;
//a1,a2 are structural variables
//p1, p2 are pointer variables
页: [1]
查看完整版本: 关于c++中typedef的用法