C++以下结构体初始化如何初始化

 在自定义结构体中:

   默认值同变量一样,int型的为0,指针型的为“NULL”------------并不是整个结构体为NULL,其中的int型还是有值0的,只是指针型的为NULL。例如


  

如果需要手动添加构造函数,代码如下:


  

 定义二叉树结点:

 
此时可以在定义node型结构体时直接赋初值,但是如果不赋初值则无法通过编译,因为默认构造函数已经修改了,系统不能再默认添加初始值,如果需要保留默认赋初始值的功能,则可以做如下定义。
 
此时既保留了默认构造函数赋初始值0,也可以自己手动赋初始值。 参考范例:

把那个struct当成一个普通的int[14]理解就好啦,就是二维数组的初始化,你可以像这样打印出来看看。

这里有篇博文介绍了二维数组的初始化
这个初始化难于理解的原因我感觉是因为,平时我们二维数组的初始化用一个花括号括起来的时候,通常都是表示了对一行的初始化,而在这个问题里面,结构体的初始化恰好可以用花括号,导致了有一些混乱,不过这里的花括号,还是表示的对整个一行的初始化,而不是对一个的结构体元素的初始化。要对这个二维数组里面的结构体逐次初始化,就要像你那样再加层花扩号。

我要回帖

更多关于 结构体初始化 的文章

 

随机推荐