成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

EasyC++,C++中的數組

開發 后端
使用數組就不會有這樣的問題,我們只需要規定數組的長度,通過一個變量就可以存儲任意多個值。有 5000 個同學就寫成int scores[5000];就都能存下了。

[[430329]]

數組

數組其實也是一種數據格式,不過是一種復合類型,它可以存儲多個同類型的值。

使用數組可以將同類型的變量整合起來管理,比如說我們現在要記錄三個同學的考試得分。我們當然可以寫成int a1, a2, a3;,看起來也不會很麻煩。但如果我們有 50 個同學呢?如果有 5000 個同學呢?顯然就不能通過這種方式了,何況每個變量都要起一個獨一無二的名字,這也很麻煩。

使用數組就不會有這樣的問題,我們只需要規定數組的長度,通過一個變量就可以存儲任意多個值。有 5000 個同學就寫成int scores[5000];就都能存下了。

定義一個數組只需要三個要素:變量類型、數組名、數組長度即可。

  1. typename arrayName[arraySize]; 

有一點需要注意,arrayName的類型不是數組,而是typename數組。也就是說數組也是區分類型的,這也是 C++中的數組和 Python 中 List 的區別之一。

數組的使用

元素訪問

對于一個數組來說,當我們需要訪問其中的元素時,可以通過下標的方式來訪問。

在絕大多數計算機程序當中,數組的下標通常都是從 0 開始的。第一個數存在第 0 位,第二個數存在第 1 位,以此類推。下標通過方括號表示,如:

  1. cout << arrayName[0] << endl; 

注意,我們傳入的下標不能大于等于數組的長度(由于是從 0 開始的),編譯器往往不會報錯,只會給出一個警告,但運行的過程當中可能會引發各種意想不到的問題。因為很可能你訪問的內存已經超過了程序管理的范圍,訪問到了一些操作系統內存或者是其他禁止訪問的內存,引起難以想象的后果。

  1. int a[3]; 
  2.  
  3. cout << a[10] << endl; 

在上面的例子當中,我們聲明了一個長度為 3 的數組,但是訪問了下標 10。這顯然超出了數組的范圍,但是當我們編譯的時候編譯器并不會報錯,只會拋出一個警告。要知道程序員往往是看不見警告的。

如果一不小心就會錯過這個信息,導致潛在的風險。所以在訪問之前一定要切記,確保下標在數組的范圍內。

初始化

數組和其他變量一樣,也可以在聲明的時候進行初始化。

最常見的方式是將它的每一個元素的值寫出來:

  1. int a[3] = {0, 1, 2}; 

編譯器會將花括號當中的元素一個一個地填到數組對應的位置當中,花括號當中的元素數量并不一定需要和數組長度相等,如果小于數組長度,那么就會初始化對應數量的元素。

  1. int a[3] = {0, 1}; 

那么數組 a 的前兩位會被初始化成 0 和 1,第三位則不會進行初始化。

如果想要將數組當中所有元素都初始化成 0,則比較特殊,我們只需要寫一個 0 即可。

  1. int a[100] = {0}; 

但只有初始化成 0 的時候可以這么操作,如果傳入其他值,則不會生效。

還有一種初始化方式是我們不填數組的長度,而通過初始化的方式讓編譯器替我們去算:

  1. int a[] = {0, 1, 2, 3, 4}; 

編譯器通過執行初始化知道 a 數組的長度為 5,不過 C++ primer 強烈建議我們不用這么干。因為我們人工數出來的結果可能和編譯器不一樣(我們會犯錯),增加我們 debug 的難度。

C++11 的初始化方式

C++11 當中對于數組的初始化又有了一些新的定義,首先是可以省略等號:

  1. int a[3] {1, 2, 3}; 

其次花括號內可以留空,這等價于將元素全部設置為 0:

  1. int a[100] = {}; 
  2. int b[10] {}; 

列表初始化時禁止縮窄轉化,我們在上一篇文章當中講過:

  1. char cs[4] = {0, 0x3f3f3f3f, 'a''z'};  // 禁止,因為0x3f3f3f3f超過了char范圍 

本文轉載自微信公眾號「Coder梁」,可以通過以下二維碼關注。轉載本文請聯系Coder梁公眾號。

 

責任編輯:武曉燕 來源: Coder梁
相關推薦

2021-10-31 20:24:24

C++for循環

2021-10-27 16:27:20

C++指針操控

2021-10-29 09:44:50

C++指針變量

2021-11-01 15:35:31

C++自增自減

2021-12-12 18:13:54

C++This指針

2021-12-29 20:31:40

C++多態指針

2021-12-08 10:43:09

C++實現

2021-11-26 00:03:20

C++編譯常量

2021-12-09 10:56:50

函數C++原型

2021-10-20 14:03:06

C++運算符類型

2021-12-10 10:45:36

C++函數Stock

2021-10-26 00:19:51

C++結構體存儲

2021-12-30 14:58:58

C++函數動態

2021-10-26 15:36:17

C++枚舉值類型

2021-11-09 10:38:16

C++Const指針

2021-12-11 19:02:03

函數C++對象

2021-11-27 11:50:09

C++靜態持續

2021-11-10 10:48:36

C++函數指針

2021-12-05 18:20:42

C++空間特性

2021-12-15 10:25:57

C++運算符重載
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久做 | 久久久久久999 | 欧美一区二区三区小说 | 国产成人亚洲精品 | 色综合一区 | 国产精品久久久久久久久久久免费看 | 99re在线视频免费观看 | 日本特黄a级高清免费大片 国产精品久久性 | 亚洲二区视频 | 国产高潮好爽受不了了夜色 | 亚洲第一成人av | 久久成人免费视频 | 中文字幕一区二区三区四区五区 | 亚洲视频在线一区 | www.日韩高清 | 国产乱码久久久 | 农村妇女毛片精品久久久 | 亚洲第一视频网站 | 成人在线不卡 | 日韩成人影院在线观看 | 亚洲免费一区二区 | 精品成人av | 精品成人av| 亚洲综合在| 国产乱码精品一区二区三区五月婷 | 精品少妇一区二区三区在线播放 | 国产成人免费在线观看 | 天天爱av | 欧美日韩中文国产一区发布 | 九九热在线视频 | 97视频网站 | 波多野结衣精品在线 | 在线播放日韩 | 免费看a | 欧美日韩中文字幕在线 | 国产情侣久久 | 日韩国产一区二区三区 | 日韩欧美精品在线 | h视频在线免费 | 久久国产视频一区 | 成人综合视频在线观看 |