This topic created in 2274 days ago, the information mentioned may be changed or developed.
代码如下:
typedef struct LNode{
ElemType data; //节点的数据域
struct LNode *next; //节点的指针域
}LNode,*LinkList;
Status InitList(LinkList &L){
L= (LinkList)malloc(sizeof(LNode)); //生成新节点作为头结点,用头指针 L 指向头结点
L->next = NULL; //头结点的指针域置空
return OK;
}
这个 LinkList 是啥啊,这个 typedef 的用法,我也有点儿看不懂了。。。是把这个结构体命名为 LNode 和*LinkList 了??
8 replies • 2020-03-18 06:08:10 +08:00
 |
|
2
lcdtyph Mar 17, 2020 via iPhone
LinkList 就是 struct LNode * 这个 typedef 拆开就好看了
定义一个指针: typedef int *pint; int a = 3; pint pa = &a;
|
 |
|
5
Jirajine Mar 17, 2020 via Android
typedef 就是把组合了一堆东西的 declarator“封装”成一个“单词”(type name)直接当做一个新的 type 使用。 C/C++的 declarator 那一套规则很恶心,完全无法理解其组合方向、优先顺序的设计到底是什么理念。
|
 |
|
6
ipwx Mar 17, 2020 1
先学会 C 的类型声明,比如:
int a; // a 是 一个整型 int *a; // a 是 一个指向整型的指针 int *a[1024]; // a 是一个 1024 个指向整型的指针的数组 int (*f)(int,int); // f 是一个指向 int(int,int) 函数的指针 char* (*g)(char*); // g 是一个指向 char*(char*) 函数的指针
然后 typedef 你直接套进去,定义出来的变量和上面每一行一一等价。
typedef int A; A a; typedef int* A; A a; typedef int* A[1024]; A a; typedef int (*F)(int, int); F f; typedef char* (*G)(char*); G g;
最后,typedef struct { ... } YYY; 等价于:
struct XXX { ... } typedef struct XXX YYY;
只不过就是省略了一个 struct XXX 的中间别名。
|
 |
|
7
season4675 Mar 17, 2020
有引用,这个是 C++不是 C……本来想多说点的,上面都回答了……
|
 |
|
8
msg7086 Mar 18, 2020
刚想说这是 C++不是 C,结果上面都说了……
|