【发布时间】:2020-03-21 18:03:54
【问题描述】:
我现在正在学习指针和列表。我有一个关于 typedef 关键字的问题。
typedef int data;
typedef struct nodo *lista;
struct nodo {
data el;
struct nodo *next;
};
如果我写下来:
lista l;
l 是指针还是结构类型。我想知道 typedef struct nodo *lista; 部分将 lista 定义为结构类型或结构的指针?
【问题讨论】:
-
从不 typedef 指针。这样只会让你更容易犯错。也许这样做的唯一真正原因可能是函数指针。
-
我想知道第二行代码是做什么的。
-
lista l;与struct nodo *l;相同。现在哪一个更容易理解?在第一种情况下你不知道l是否是一个指针,在第二种情况下你知道。 -
奇怪的是结构定义没有使用
lista代替struct nodo *。不完全是错误的,但有点出乎意料。