自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

透析C++的C++數(shù)組類型

開發(fā) 后端
任何C++固有數(shù)據(jù)類型都可以放進數(shù)組中,數(shù)組就是數(shù)值的集合,在C++中進行數(shù)組操作是一件極為復(fù)雜和困難的事情。

C++數(shù)組的類型實際上是指數(shù)組元素的取值類型,對于同一個數(shù)組,其所有元素的數(shù)據(jù)類型都是相同的,數(shù)組名的書寫規(guī)則應(yīng)符合標識符的書寫規(guī)定,希望本文能給大家有用的信息。

例如,假設(shè)要保存一個整型數(shù)組,放五個整型值??梢月暶?FONT size=+0>數(shù)組如下:int myArray[5];這里編譯器為數(shù)組分配圖1.7所示的內(nèi)存空間。由于每個int要4個字節(jié)存儲,所以整個數(shù)組占用20字節(jié)的內(nèi)存空間。

  1. 1: #include <iostream.h>   
  2.  
  3. 2: #include <conio.h>   
  4.  
  5. 3: #pragma hdrstop   
  6.  
  7. 4:   
  8.  
  9. 5: int main(int argc,char **argv)   
  10.  
  11. 6: {   
  12.  
  13. 7:char str[]="This is a string.";   
  14.  
  15. 8.cout << str << end1;   
  16.  
  17. 9.str[7]= '\0';   
  18.  
  19. 10. cout << str << end1   
  20.  
  21. 11. cout << end1 << "Press any key to continue...";   
  22.  
  23. 12: getch();   
  24.  
  25. 13: return 0;   
  26.  
  27. 14: } 

進一步說,如果知道數(shù)組的元素個數(shù),并在聲明數(shù)組時填充數(shù)組,則聲明C++數(shù)組時連數(shù)組長度都可以省略。例如:int myArray[] = {-200, -100,0,100,200 };這是可行的,因為編譯器從賦予的數(shù)值表可以判斷出數(shù)組中元素的個數(shù)和分配給數(shù)組的內(nèi)存空間。

數(shù)組可以是多維的。為了生成兩維整型數(shù)組,這樣就分配15個int空間(共60字節(jié))。數(shù)組的元素可以和一維數(shù)組
樣訪問,只是要提供兩個腳標操作符:int x = mdArray[1][1]+mdArray[2][1];

C++一個強大的特性是能直接訪問內(nèi)存。由于這個特性,C++無法阻止你寫入特定內(nèi)存地址,即使這個地址是程序不讓訪問的。下列代碼是合法的,但會導致程序或Windows崩潰:int array[5];array[5]=10;這是常見的錯誤。

因為C++數(shù)組是以0為基數(shù)的,***腳標應(yīng)是4而不是5。如果重載數(shù)組末尾,則無法知道哪個內(nèi)存被改寫了,使結(jié)果難以預(yù)料,甚至會導致程序或Windows崩潰。這類問題很難診斷,因為受影響的內(nèi)存通常要在很久以后才訪問,這時才發(fā)生崩潰(讓你莫名其中之妙)。所以寫入數(shù)組時一定要小心。

C++數(shù)組規(guī)則

數(shù)組是以0為基數(shù)。數(shù)組中的***個元素為0,第二個元素為1,第三個元素為2,等等。
數(shù)組長度應(yīng)為編譯常量。編譯器在編譯時必須知道為數(shù)組分配多少內(nèi)存空間。不能用變量指定C++數(shù)組長度。所以下列代碼不合法
◆大數(shù)組從堆疊(heap)而不是堆棧(stack)中分配(詳見稍后)。
◆從堆疊分配的數(shù)組可以用變量指定數(shù)組長度。

這就在內(nèi)存中分配18字節(jié)的內(nèi)存空間用于存放字串。根據(jù)你的領(lǐng)悟能力,也許你會發(fā)現(xiàn)該字串中只有17個字符。分配18個字節(jié)的原因是字串要以終止null結(jié)尾,C++在分配內(nèi)存空間時把終止null算作一個字符。 終止null是個特殊字符,用|0表示,等于數(shù)值0。程序遇到字符數(shù)組中的0時,表示已經(jīng)到字串末尾。為了說明這點,輸入并運行下列控制臺應(yīng)用程序。

【編輯推薦】

  1. C與C++中標準輸入實現(xiàn)方式上的一點區(qū)別
  2. C++編譯器如何對Const常量進行分配存儲空間
  3. C++類庫設(shè)計的基本構(gòu)思與方法
  4. 玩轉(zhuǎn)C++語言的幾種方法
  5. 如何更好的進行C++代碼編制
責任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

2010-01-18 09:39:25

C++語言

2010-01-19 14:28:41

C++ main()函

2010-01-22 13:45:36

C++代碼

2010-01-20 10:19:55

C++數(shù)組

2010-01-28 16:31:54

C++類型

2010-01-18 17:48:46

C++類對象

2010-01-21 10:04:14

C++語言

2010-01-20 14:13:33

C++變量

2010-01-20 09:54:27

C++數(shù)據(jù)類型

2021-10-19 14:04:28

C++類型數(shù)字

2010-01-21 09:34:57

C++語法

2010-01-27 16:05:06

C++堆棧

2010-01-21 14:07:14

CC++聲明

2010-01-26 15:51:06

C++變量

2023-09-24 23:44:10

C++類型安全

2021-10-21 18:52:00

C++數(shù)組存儲

2010-01-21 13:33:44

C++基類

2010-01-25 10:25:19

C++變量

2010-01-27 17:16:52

C++構(gòu)造函數(shù)

2020-08-21 13:20:36

C++If ElseLinux
點贊
收藏

51CTO技術(shù)棧公眾號