如果我們寫出類似:「new int [5] {};」中的「{}」的用途是什麼?
int *arr = new int[5];
在這種情況下,系統動態地爲int
類型的5個元素分配空間並返回一個指向該序列的第一個元素。
但是,一旦我看到下面的代碼:
int *arr = new int[5]{};
那麼,是什麼意思{}
後new
操作?這段代碼中{}
的用途是什麼?
我已經初始化數組用我自己的價值,就像這樣:
#include <iostream>
int main()
{
int* a = new int[5]{1};
for(int i = 0; i < 5; i++)
std::cout<< a[i]<<' ';
delete[] a;
}
輸出:
1 0 0 0 0
只有第一個元素打印1
。爲什麼?
我建議你花些時間閱讀[this'new' reference](http://en.cppreference.com/w/cpp/language/new)。在描述語法的表格中,請注意* initializer *部分。然後向下滾動到關於[施工](http://en.cppreference.com/w/cpp/language/new#Construction)的部分以瞭解更多信息。 –
此語法自C++ 11以來一直在使用。它允許使用大括號內指定的值初始化數組,或者在此情況下使用零來初始化數組。 –
使用std :: vector! – 2017-10-13 07:02:15