C宣告指標空間問題 int p new int 10 與int p new int

2021-04-18 03:48:42 字數 1191 閱讀 2978

1樓:

int *p=new int(10) 開闢一個指標p p指的內容是一個整型,值為10

int *p=new int[10] 開闢一個長為10的陣列,預設每個值都是0,p指向array的開頭

int *p=new int; int *p=new int[10]; int *p=new int(10);這三個有什麼區別,什麼時候用?

2樓:

int *p=new int;——分配一個baiint型變數所du佔大小的空間,zhi並將首地址賦給int *型指

dao針p。

int *p=new int[10];——分配一專個有10個int型元素屬

的陣列所佔空間,並將該陣列的第一個元素的地址賦給int *型指標p。

int *p=new int(10);——分配一個int型變數所佔大小的空間,在其中放入十進位制數10,並將首地址賦給int *型指標p。

至於怎麼用,那知道了意思,就只能說按需要選擇了……

c++中, int *p = new int[10]; int *p1 = new int[10](); 有什麼區別?

3樓:匿名使用者

int *p = new int[10]; 申請10個整數的空間,但不進行初始化, 相當於malloc

int *p = new int[10]; 申請10個整數的空間,並對其進行初始化

int *p=new int; int *p=new int(8); int *p=new int[8]; 編譯執行都沒問題,具體區別在**呢?

4樓:鐳毅

int *p=new int;//定義一個int型的指標,並分配一個元素

int *p=new int[8];//定義一個int型的指標,並分配8個元素的空間

int *p=new int(8);//主要用於定義函式指標:

比如:class a

};void f(void) catch (...)try catch (...)

}int main()

5樓:

第一個p是指向int的指標,第二個p也是指向int的指標,但是賦初值為8,第三個是指向int陣列的指標,陣列初始大小為8。

在c語言裡面宣告指標並用malloc賦值與與直接宣告變

區別當然是有的 link n 申明結構體實體 n 結構體地址 link n 申明結構體指標 n malloc sizeof link 讓結構體指標指向申請的記憶體空間,需要free釋放 後者需要釋放並且申請大小靈活 希望對你有幫助 首先你得明白malloc函式的作用 malloc函式是在記憶體中找到...

C 宣告變數佔不佔儲存空間,C 宣告變數佔不佔儲存空間

宣告總要對應定義的,如果你宣告瞭,而沒有定義,那麼,你的宣告還有什麼意義?所以,兩本書說的都可以算對的 你可以假設你宣告的時候沒有分配儲存空間 那麼,你定義的時候,就肯定是佔用了儲存空間的 我認為前面教材準確.定義也可以是宣告。如果該編譯器 還沒有 看到過名字a 程式設計師定義int a 則編譯器馬...

c語言外部函式宣告與否問題,C語言函式宣告是要在主函式內部還是外部啊?

絕對是會的,每一個函式都有入口,作業系統 os 需要計算地址並且定址,然後每個子函式都有一個返回值,執行完os仍然有計算和定址,然後返回main,不過這種時間花費很小,並不比一次inta b c的運算多多少,因此不會犧牲很多時間,另外,這種微小時間的付出換來的確實程式的模組化和有序化,顯然是非常值得...