記得在學習c++陣列的時候,老師對我們說:陣列名就是指標。這句話一直根深蒂固於我的腦袋裡,直到我無意中編寫一段程式時,發現兩者並不完全等同,請看下面一段**:
這段**完全說明了陣列名不算是指標,而且結果的解釋也能非常符合常理:在win32下,指標的長度為32位(4位元組),而fullarray2陣列的長度為10個位元組。
這段**說明了另乙個真理:
sizeof在計算陣列是計算它的實際記憶體容量,而計算指標永遠都是4位元組。c++是永遠沒法知道它所指的內容的容量。
那麼,陣列名究竟是什麼呢?
其實答案很簡單,陣列就是一種資料結構,特別之處只是在於它能夠轉換為指標常量而已。
這樣就又給我們提了個醒,在陣列為實參,指標為形參的時候:
與我們預期的結果是不一樣的,要特別注意。
陣列名和指標區別
前兩天同學問了我乙個問題 陣列名和指標有什麼區別,或者說這兩者有沒有區別?我回顧了下,大學課堂上老師講的,貌似記得老師說陣列名就相當於指標,比如 一維陣列就是一級指標 二維陣列是二級指標 之類的。結果同學告訴說原來我也是這麼理解的,其實 陣列名與指標有著本質的區別 然後給我推薦了一篇博文。我們經常見...
C 中陣列名和指標的區別聯絡
第乙個結論 include iostream.h void main 3 char p str 4 cout 7 p 8 str 看似指標和陣列名是相同的,其實不然 第4行和第6行輸出結果不同就是證明,前者是字元陣列長度7,而指標在32位機中是乙個dword,4個位元組,在64位中就是8了。第二個結...
陣列名和指標的區別
魔幻陣列名 請看程式 本文程式在win32平台下編譯 1.include 2.int main int argc,char argv 3.size 3 1 陣列名不是指標 size 我們先來推翻 陣列名就是指標 的說法,用反證法。證明 陣列名不是指標 假設 陣列名是指標 則 pstr和str都是指標...