1樓:
int *p; // 只是定義一個指標變數,但它還沒有在堆記憶體分配空間。
*p=123; // 錯誤,因為還沒有記憶體空間可以儲存123這個值。
int * p2 = new int; // 為指標變數p2分配了一個記憶體空間
*p2=123; // 正確,因為此時p2有空間可以儲存123這個值。
int *p;*p=new int;及int *p;p=new int;這兩個有什麼區別嗎?
2樓:匿名使用者
int *p;*p=new int;
int *p; //p定義為指標,但是尚未分配或者指定地址。
*p=new int; //需要修改p指向的地址的值,但是此時p沒有指定地址,所以會報錯。
3樓:匿名使用者
前者非法,編譯會報錯
int *p=new int; int *p=new int[10]; int *p=new int(10);這三個有什麼區別,什麼時候用?
4樓:
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 *p=new int[
5樓:
int *p=new int(10) 開闢一個指標p p指的內容是一個整型,值為10
int *p=new int[10] 開闢一個長為10的陣列,預設每個值都是0,p指向array的開頭
c++中, int *p = new int[10]; int *p1 = new int[10](); 有什麼區別?
6樓:匿名使用者
int *p = new int[10]; 申請10個整數的空間,但不進行初始化, 相當於malloc
int *p = new int[10]; 申請10個整數的空間,並對其進行初始化
c++中,int *p=new int是可有可無的嗎?
7樓:匿名使用者
int *p = new int;
是在堆中給變數分配了一個空間,當用完後需要手動釋放。可以使用delete()函式
如果沒有int *p = new int; 是不能給p進行賦值的 因為沒有分配空間。
你也可以使用malloc分配空間,但最後釋放的時候要使用free()函式
8樓:匿名使用者
如果是int * p;
*p = 0;
那麼結果是不可預知的,可能正常執行,也可能立即崩潰,或者在任何無法預知的時候出現任何無法預知的問題。
如果是int t;
int * p=new int;
p = &t;
將會造成記憶體洩漏,如果多次出現這樣的情況,將會導致程式可用的記憶體越來越少。
9樓:千江月
不是可有可無的,得看你如何使用
舉例:1、 int *p = new int;
*p = 5;
此時p沒有空間必須申請
2、int a = 5;
int *p;
p = &a; //p不用重新申請空間,它指向a的空間。。
10樓:匿名使用者
看你對p賦值是什麼意思了。
如果說讓p指向另外一個int *指標可以。
但是如果說你要 *p =1或者什麼就不行了。
必須得new int分配空間
c++中,int **p=new int*[5]為什麼不正確?
11樓:匿名使用者
這樣子是沒有問題的啊,你定義了一個二重指標,指向了一個具有5個int*元素的陣列。
12樓:
除了沒有分號外,沒看出**不正確
13樓:匿名使用者
是不是你最後沒有打分號。。。
c++ int n; int *p=new int[n];怎樣初始化
14樓:好激動加入
new int [n]會申
復請一個n個int元素的內製存空間,相當於一個n個int元素的陣列bai,這個值會被賦值給dup[i]。
p為int *為元素的陣列,
或zhiint**指標,其中p[i]為p的第i個元dao素。
於是這句話的意思就是,在p的第i個元素分配n個int元素的空間。
其後可以使用p[i][0]到p[i][n-1]共計n個元素。使用後,需要呼叫
delete p[i];
c++的int (*p)[3]與int *p,int**p的區別
15樓:匿名使用者
int *p是指標,指向一個int型別;int **p是指標的指標指向int *型別(理解方便,可以理解為int *型別);int (*p)[3] 是指標的指標(二維陣列指標),指向一個陣列,而陣列內容指向一個一維含3個元素的陣列,簡單講即*p指向int[3]型別,當然*(p+1)....*(p+n)都指向一個一維含3個元素的陣列,p本身指向一個陣列。
new int[5][5]編譯是通不過的,二維動態陣列不是這樣分配的,需要先申請int *型別陣列,陣列的元素再賦值為int [5]型別的資料即
int **p=new int*[5];
for(int i=0;i<5;++i)
p[i] = new int[5];
16樓:匿名使用者
int (*p)[3]表示p是個指向維度為3的二級指標相當於一個n行3列陣列a[n][3],每一行的首地址;
int *p表示一個指向整形的指標;
int**p表示一個二級指標;
其中int (*p1)[3]與int**p2都是二級指標,對於二維陣列來說我覺他們最大區別就是p1只能指向列數為3的二維陣列的首地址;而p2可以指向任意二維陣列首地址;同時要注意他們兩者之間+ 、++ 等運算子的規律也不一樣
17樓:朗懌
int (*p)[3],p是一個陣列指標
int *p; p是一個指標變數
int **p; p是一個二級指標
通分13和25。38和512。724和
通分1 3和2 5為5 15和6 15 3 8和5 12為9 24和10 24 7 24和7 16為14 48和21 48 5 15和10 15,6 24和10 24,14 48和21 48。5 12 7 8和11 16 怎麼通分?急!求!謝!12 8 16的最小公倍數是48,所以 5 12 20 ...
the和an和a的區別,a an和the的區別
a用於子音音素前,a useful book an則用於母音音素前,an hour 定冠詞 例如英語中的the 用來限定這個冠詞後面的名詞是某個特定的事物 特指雙方都明白的人或物 例如 give me the book.沒有單一規則可用來確定使用或不用冠詞a an the。對於是否要使用冠詞,在某些...
用既然和既然和哪怕和甚至和只要和就造句
1.遇到困難不要抱怨,既然改變不了過去,那就改變未來。2.既然我從不迷信中秋的月光比平時漂亮,為何此刻會有失落的感覺?3.我們都來自緣分,最終還要回歸忘記,既然世事空幻,為何還要執著在無名產生的煩惱裡。用煩惱的心看世界,你會無路可逃 用輕鬆的眼看世界,你會發現這個世界處處都是突然的美好。4.你既然認...