21xrx.com
2024-11-25 05:11:55 Monday
登录
文章检索 我的文章 写文章
C++中new一个数组后加括号和不加括号的区别
2023-07-05 17:13:15 深夜i     --     --
C++ new 数组 加括号 不加括号

在C++中,我们可以通过使用new操作符在堆中动态分配数组。新手开发者在使用new动态分配数组时可能有些困惑,因为他们不知道在new操作符后是否应该加上括号。那么,新建一个数组时加括号和不加括号有什么区别呢?

首先,需要知道的是,new操作符后面加上括号和不加括号并没有本质区别。它们的唯一差异在于代码的可读性。

使用括号,例如new int[10](),在新建数组时,为每个元素自动初始化为0。这意味着无需显式地初始化数组,因为所有元素都具有默认值。这对于新手程序员非常有用,因为他们不必担心忘记初始化数组元素。

但是,如果您在创建一个包含自定义类型对象的数组时,则必须显式调用构造函数。在这种情况下,您需要使用括号,例如new MyClass[10]()。

不使用括号,在新建数组时,C++默认不会将数组元素初始化为任何特定值。这意味着在使用此方法创建数组时,开发者必须逐个初始化元素。在有些情况下,我们不希望将所有元素初始化为0或任何其他值,因此我们可以使用这种方法来指定要将元素初始化为什么值,例如new int[10] 2。

综上所述,新手开发者可以从使用括号的方式中受益,因为这使得代码更易于阅读和维护。但在某些情况下,未使用括号可能更加方便,因为它使开发者自由选择要将数组元素初始化为什么值。

无论哪种方式,开发者都可以使用new在堆中动态分配数组,以满足程序的需求。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复