簡(jiǎn)述數組與指針的區別
數組要么在靜態(tài)存儲區被創(chuàng )建(如全局數組),要么在棧上被創(chuàng )建。指針可以隨時(shí)指向任意類(lèi)型的內存塊。
(1)修改內容上的.差別
char a[] = “hello”;
a[0] = ‘X’;
char *p = “world”; // 注意p 指向常量字符串
p[0] = ‘X’; // 編譯器不能發(fā)現該錯誤,運行時(shí)錯誤
(2) 用運算符sizeof 可以計算出數組的容量(字節數)。sizeof(p),p 為指針得到的是一個(gè)指針變量的字節數,而不是p 所指的內存容量。C++/C 語(yǔ)言沒(méi)有辦法知道指針所指的內存容量,除非在申請內存時(shí)記住它。注意當數組作為函數的參數進(jìn)行傳遞時(shí),該數組自動(dòng)退化為同類(lèi)型的指針。
char a[] = “hello world”;
char *p = a;
cout<< sizeof(a) << endl; // 12 字節
cout<< sizeof(p) << endl; // 4 字節
計算數組和指針的內存容量
void Func(char a[100])
{
cout<< sizeof(a) << endl; // 4 字節而不是100 字節
}
【簡(jiǎn)述數組與指針的區別】相關(guān)文章:
C++面試常用問(wèn)題:"引用"與指針的區別12-11
JavaScript中的索引數組、關(guān)聯(lián)數組和靜態(tài)數組、動(dòng)態(tài)數組的分類(lèi)講11-10
簡(jiǎn)述紅茶與綠茶的不同08-31
簡(jiǎn)述如何與上司溝通07-25
如何獲取PHP數組的鍵與值呢11-17
助理與秘書(shū)的區別10-10