C++ 关于typedef的疑问

我想问一下,这里结构体没有typedef,为什么还可以直接用TreeNode tree来初始化一个变量呢,不应该用struct TreeNode tree吗,但是编译器没有报错,也可以运行,为什么呢

img

C++可以这么写,C必须加上struct 或者typedef

在 C++ 中,结构体类型名与变量名空间是相互独立的。也就是说,即使没有使用 typedef 定义结构体类型名,你依然可以使用 struct TreeNode 声明结构体变量,但这样会显得冗长。实际上,使用 typedef 可以将结构体类型名简化为一个单独的名称,使代码更加简洁易读。但如果你没有使用 typedef,那么在声明结构体变量时,可以省略 struct 关键字,直接使用结构体类型名即可,这也是 C++ 的一种特性。因此,在你的代码中,使用 TreeNode tree[10]; 来声明结构体数组是合法的。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^