我们假设我按照以下方式实现了一棵树:
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的细微差别吗?