typedef和指向struct的指针的奇怪行为

时间:2018-05-04 15:40:27

标签: c pointers struct typedef

我们假设我按照以下方式实现了一棵树:

struct Node;
typedef struct Node Tree
struct Node {
int value;
Tree *left;
Tree *right;
};

现在我想尝试一下struct的指针:

const Tree * a;

这完全正常,我无法将a指向的值分配给其他任何东西,等等。但是,我想让事情变得更容易,并将typedef更改为以下内容:

typedef struct Node * Tree

现在,即使看起来很明显

const Tree a;

应该与前一个声明的行为方式相同,它不会,而是表现得像一个const指针,这意味着我不能写

a = ..stmh_else..

为什么会这样?我不知道typedef的细微差别吗?

0 个答案:

没有答案