初始化動態分配的陣列

2021-08-22 15:07:04 字數 620 閱讀 1627

動態分配陣列時,如果陣列元素具有類型別,將使用該類的預設建構函式實現初始化; 不能像陣列變數一樣,用初始化列表為陣列元素提供各不相同的初值。

如果陣列元素是內建型別,則無初始化。也可以使用跟在陣列長度後面的一對空圓括號,對陣列元素做值初始化。圓括號要求編譯器對陣列做值初始化。 

如果我們在自由儲存區中建立的陣列儲存了內建型別的const物件,則必須為這個陣列提供初始化;

因為陣列元素都是const物件,無法賦值。實現這個要求的唯一方法是對陣列做值初始化。

const  int  *pci_ok   =   new  const   int[100]   ();
c++允許定義類型別的const陣列,但該類型別必須提供預設建構函式:

在這裡,將使用string類的預設建構函式初始化陣列元素。 

之所以要動態分配陣列,往往是由於編譯時並不知道陣列的長度。

size_t   n  = get_size();

int  *p  =  new  int[n];

for(int*  q =  p;  q !=  p+n;  +=q )}

計算陣列長度,然後建立和處理該陣列。

然後迴圈初始化。

new動態分配和初始化物件

1,自由空間分配的記憶體是無名的 2,new無法為其分配的物件命名,而是返回乙個指向該物件的指標 3,預設情況,動態分配的物件是預設初始化的,所以內建型別或組合型別的物件值是未定義的,而類型別物件將用預設建構函式進行初始化 string ps new string 初始化為空string int p...

陣列 初始化 只含動態初始化 靜態初始化

首先j a中此處只講靜態初始化 動態初始化 靜態初始化就是提前在陣列中設定好了陣列內容,此內容不做改動,該多長已經在設定內容的時候已經決定 動態初始化就是僅限於new及確定陣列大小長度,裡面的陣列內容沒有,可自由進行填寫,也包含了靜態初始化的內容 示例 package 陣列 public class...

動態分配陣列

注意,刪除操作不會刪除該指標 它刪除指標所指向的記憶體!動態分配陣列 動態陣列的宣告讓我們執行程式時選擇自己的大小。動態分配陣列,我們使用新的和刪除陣列形式 通常稱為新的 和 刪除 123 4int nsize 12 int pnarray new int nsize note nsize does...