c new的用法總結

2021-06-22 20:24:27 字數 1262 閱讀 9670

c++中,new的用法很靈活,這裡進行了簡單的總結:

1. new() 分配這種型別的乙個大小的記憶體空間,並以括號中的值來初始化這個變數;

2. new 分配這種型別的n個大小的記憶體空間,並用預設建構函式來初始化這些變數;

#include

#include

using namespace std;

int main()

輸出結果:

h

hello

3. 當使用new運算子定義乙個多維陣列變數或陣列物件時,它產生乙個指向陣列第乙個元素的指標,返回的型別保持了除最左邊維數外的所有維數。例如:

int *p1 = new int[10];

返回的是乙個指向int的指標int*

int (*p2)[10] = new int[2][10];

new了乙個二維陣列, 去掉最左邊那一維[2], 剩下int[10], 所以返回的是乙個指向int[10]這種一維陣列的指標int (*)[10].

int (*p3)[2][10] = new int[5][2][10];  new了乙個三維陣列, 去掉最左邊那一維[5], 還有int[2][10], 所以返回的是乙個指向二維陣列int[2][10]這種型別的指標int (*)[2][10].

#include

#include

using namespace std;

int main()

輸出結果:

int *

1

int (*)[2]

1

int (*)[2][3]

1

C new用法總結

有一道這樣的題 寫出c 中new關鍵字的三種用法,思前想後挖空心思也只想出了兩種用法,回來查了下msdn,還真是有第三種用法 用於在泛型宣告中約束可能用作型別引數的引數的型別,這是在framework 2.0 中定義泛行時才會使用到的,自己對c 2.0 中的支援還只是 粗通皮毛,怪不得累死so ma...

C new 運算子 用法總結

1.分配記憶體初始化標量型別 如 int 或 double 在型別名後加初始值,並用小括號括起,c 11中也支援大括號。int pi new int 6 double pd new double 9.99 c 11中,支援以下寫法 int pi new int double pd new doubl...

C new和delete的用法

對於計算機程式設計而言,變數和物件在記憶體中的分配都是編譯器在編譯程式時安排好的,這帶來了極大的不便,如陣列必須大開小用,指標必須指向乙個已經存在的變數或物件。對於不能確定需要占用多少記憶體的情況,動態記憶體分配解決了這個問題。new和delete運算子是用於動態分配和撤銷記憶體的運算子。一 new...