我想问一下,这里结构体没有typedef,为什么还可以直接用TreeNode tree来初始化一个变量呢,不应该用struct TreeNode tree吗,但是编译器没有报错,也可以运行,为什么呢
C++可以这么写,C必须加上struct 或者typedef
在 C++ 中,结构体类型名与变量名空间是相互独立的。也就是说,即使没有使用 typedef 定义结构体类型名,你依然可以使用 struct TreeNode 声明结构体变量,但这样会显得冗长。实际上,使用 typedef 可以将结构体类型名简化为一个单独的名称,使代码更加简洁易读。但如果你没有使用 typedef,那么在声明结构体变量时,可以省略 struct 关键字,直接使用结构体类型名即可,这也是 C++ 的一种特性。因此,在你的代码中,使用 TreeNode tree[10]; 来声明结构体数组是合法的。
不知道你这个问题是否已经解决, 如果还没有解决的话: