您好,登錄后才能下訂單哦!
如何解析C++的C++數組類型,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
C++數組的類型實際上是指數組元素的取值類型,對于同一個數組,其所有元素的數據類型都是相同的,數組名的書寫規則應符合標識符的書寫規定,希望本文能給大家有用的信息。
例如,假設要保存一個整型數組,放五個整型值。可以聲明數組如下:int myArray[5];這里編譯器為數組分配圖1.7所示的內存空間。由于每個int要4個字節存儲,所以整個數組占用20字節的內存空間。
1: #include <iostream.h> 2: #include <conio.h> 3: #pragma hdrstop 4: 5: int main(int argc,char **argv) 6: { 7:char str[]="This is a string."; 8.cout << str << end1; 9.str[7]= '\0'; 10. cout << str << end1 11. cout << end1 << "Press any key to continue..."; 12: getch(); 13: return 0; 14: }
進一步說,如果知道數組的元素個數,并在聲明數組時填充數組,則聲明C++數組時連數組長度都可以省略。例如:int myArray[] = {-200, -100,0,100,200 };這是可行的,因為編譯器從賦予的數值表可以判斷出數組中元素的個數和分配給數組的內存空間。
數組可以是多維的。為了生成兩維整型數組,這樣就分配15個int空間(共60字節)。數組的元素可以和一維數組一
樣訪問,只是要提供兩個腳標操作符:int x = mdArray[1][1]+mdArray[2][1];
C++一個強大的特性是能直接訪問內存。由于這個特性,C++無法阻止你寫入特定內存地址,即使這個地址是程序不讓訪問的。下列代碼是合法的,但會導致程序或Windows崩潰:int array[5];array[5]=10;這是常見的錯誤。
因為C++數組是以0為基數的,***腳標應是4而不是5。如果重載數組末尾,則無法知道哪個內存被改寫了,使結果難以預料,甚至會導致程序或Windows崩潰。這類問題很難診斷,因為受影響的內存通常要在很久以后才訪問,這時才發生崩潰(讓你莫名其中之妙)。所以寫入數組時一定要小心。
C++數組規則
◆數組是以0為基數。數組中的***個元素為0,第二個元素為1,第三個元素為2,等等。
◆數組長度應為編譯常量。編譯器在編譯時必須知道為數組分配多少內存空間。不能用變量指定C++數組長度。所以下列代碼不合法
◆大數組從堆疊(heap)而不是堆棧(stack)中分配(詳見稍后)。
◆從堆疊分配的數組可以用變量指定數組長度。
這就在內存中分配18字節的內存空間用于存放字串。根據你的領悟能力,也許你會發現該字串中只有17個字符。分配18個字節的原因是字串要以終止null結尾,C++在分配內存空間時把終止null算作一個字符。 終止null是個特殊字符,用|0表示,等于數值0。程序遇到字符數組中的0時,表示已經到字串末尾。為了說明這點,輸入并運行下列控制臺應用程序。
看完上述內容,你們掌握如何解析C++的C++數組類型的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。