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

EasyC++,C++中的數(shù)組

開發(fā) 后端
使用數(shù)組就不會(huì)有這樣的問(wèn)題,我們只需要規(guī)定數(shù)組的長(zhǎng)度,通過(guò)一個(gè)變量就可以存儲(chǔ)任意多個(gè)值。有 5000 個(gè)同學(xué)就寫成int scores[5000];就都能存下了。

[[430329]]

數(shù)組

數(shù)組其實(shí)也是一種數(shù)據(jù)格式,不過(guò)是一種復(fù)合類型,它可以存儲(chǔ)多個(gè)同類型的值。

使用數(shù)組可以將同類型的變量整合起來(lái)管理,比如說(shuō)我們現(xiàn)在要記錄三個(gè)同學(xué)的考試得分。我們當(dāng)然可以寫成int a1, a2, a3;,看起來(lái)也不會(huì)很麻煩。但如果我們有 50 個(gè)同學(xué)呢?如果有 5000 個(gè)同學(xué)呢?顯然就不能通過(guò)這種方式了,何況每個(gè)變量都要起一個(gè)獨(dú)一無(wú)二的名字,這也很麻煩。

使用數(shù)組就不會(huì)有這樣的問(wèn)題,我們只需要規(guī)定數(shù)組的長(zhǎng)度,通過(guò)一個(gè)變量就可以存儲(chǔ)任意多個(gè)值。有 5000 個(gè)同學(xué)就寫成int scores[5000];就都能存下了。

定義一個(gè)數(shù)組只需要三個(gè)要素:變量類型、數(shù)組名、數(shù)組長(zhǎng)度即可。

  1. typename arrayName[arraySize]; 

有一點(diǎn)需要注意,arrayName的類型不是數(shù)組,而是typename數(shù)組。也就是說(shuō)數(shù)組也是區(qū)分類型的,這也是 C++中的數(shù)組和 Python 中 List 的區(qū)別之一。

數(shù)組的使用

元素訪問(wèn)

對(duì)于一個(gè)數(shù)組來(lái)說(shuō),當(dāng)我們需要訪問(wèn)其中的元素時(shí),可以通過(guò)下標(biāo)的方式來(lái)訪問(wèn)。

在絕大多數(shù)計(jì)算機(jī)程序當(dāng)中,數(shù)組的下標(biāo)通常都是從 0 開始的。第一個(gè)數(shù)存在第 0 位,第二個(gè)數(shù)存在第 1 位,以此類推。下標(biāo)通過(guò)方括號(hào)表示,如:

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

注意,我們傳入的下標(biāo)不能大于等于數(shù)組的長(zhǎng)度(由于是從 0 開始的),編譯器往往不會(huì)報(bào)錯(cuò),只會(huì)給出一個(gè)警告,但運(yùn)行的過(guò)程當(dāng)中可能會(huì)引發(fā)各種意想不到的問(wèn)題。因?yàn)楹芸赡苣阍L問(wèn)的內(nèi)存已經(jīng)超過(guò)了程序管理的范圍,訪問(wèn)到了一些操作系統(tǒng)內(nèi)存或者是其他禁止訪問(wèn)的內(nèi)存,引起難以想象的后果。

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

在上面的例子當(dāng)中,我們聲明了一個(gè)長(zhǎng)度為 3 的數(shù)組,但是訪問(wèn)了下標(biāo) 10。這顯然超出了數(shù)組的范圍,但是當(dāng)我們編譯的時(shí)候編譯器并不會(huì)報(bào)錯(cuò),只會(huì)拋出一個(gè)警告。要知道程序員往往是看不見警告的。

如果一不小心就會(huì)錯(cuò)過(guò)這個(gè)信息,導(dǎo)致潛在的風(fēng)險(xiǎn)。所以在訪問(wèn)之前一定要切記,確保下標(biāo)在數(shù)組的范圍內(nèi)。

初始化

數(shù)組和其他變量一樣,也可以在聲明的時(shí)候進(jìn)行初始化。

最常見的方式是將它的每一個(gè)元素的值寫出來(lái):

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

編譯器會(huì)將花括號(hào)當(dāng)中的元素一個(gè)一個(gè)地填到數(shù)組對(duì)應(yīng)的位置當(dāng)中,花括號(hào)當(dāng)中的元素?cái)?shù)量并不一定需要和數(shù)組長(zhǎng)度相等,如果小于數(shù)組長(zhǎng)度,那么就會(huì)初始化對(duì)應(yīng)數(shù)量的元素。

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

那么數(shù)組 a 的前兩位會(huì)被初始化成 0 和 1,第三位則不會(huì)進(jìn)行初始化。

如果想要將數(shù)組當(dāng)中所有元素都初始化成 0,則比較特殊,我們只需要寫一個(gè) 0 即可。

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

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

還有一種初始化方式是我們不填數(shù)組的長(zhǎng)度,而通過(guò)初始化的方式讓編譯器替我們?nèi)ニ悖?/p>

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

編譯器通過(guò)執(zhí)行初始化知道 a 數(shù)組的長(zhǎng)度為 5,不過(guò) C++ primer 強(qiáng)烈建議我們不用這么干。因?yàn)槲覀內(nèi)斯?shù)出來(lái)的結(jié)果可能和編譯器不一樣(我們會(huì)犯錯(cuò)),增加我們 debug 的難度。

C++11 的初始化方式

C++11 當(dāng)中對(duì)于數(shù)組的初始化又有了一些新的定義,首先是可以省略等號(hào):

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

其次花括號(hào)內(nèi)可以留空,這等價(jià)于將元素全部設(shè)置為 0:

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

列表初始化時(shí)禁止縮窄轉(zhuǎn)化,我們?cè)谏弦黄恼庐?dāng)中講過(guò):

  1. char cs[4] = {0, 0x3f3f3f3f, 'a''z'};  // 禁止,因?yàn)?x3f3f3f3f超過(guò)了char范圍 

本文轉(zhuǎn)載自微信公眾號(hào)「Coder梁」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Coder梁公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Coder梁
相關(guān)推薦

2021-10-31 20:24:24

C++for循環(huán)

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++多態(tài)指針

2021-12-08 10:43:09

C++實(shí)現(xiàn)

2021-11-26 00:03:20

C++編譯常量

2021-12-09 10:56:50

函數(shù)C++原型

2021-10-20 14:03:06

C++運(yùn)算符類型

2021-12-10 10:45:36

C++函數(shù)Stock

2021-10-26 00:19:51

C++結(jié)構(gòu)體存儲(chǔ)

2021-12-30 14:58:58

C++函數(shù)動(dòng)態(tài)

2021-10-26 15:36:17

C++枚舉值類型

2021-11-09 10:38:16

C++Const指針

2021-12-11 19:02:03

函數(shù)C++對(duì)象

2021-11-27 11:50:09

C++靜態(tài)持續(xù)

2021-11-10 10:48:36

C++函數(shù)指針

2021-12-05 18:20:42

C++空間特性

2021-12-15 10:25:57

C++運(yùn)算符重載
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 午夜不卡福利视频 | 成年视频在线观看福利资源 | 超碰成人在线观看 | 午夜激情视频在线 | 2018国产大陆天天弄 | 国产激情一区二区三区 | 日韩伦理一区二区三区 | 韩日在线 | 色婷婷激情 | 亚洲精品91| 国产精品一区二区三区在线 | 国产精品自拍视频网站 | 成人午夜精品 | 麻豆av一区二区三区久久 | 久久人人爽人人爽人人片av免费 | 国产一二区在线 | 狠狠干天天干 | 九九久久精品 | 午夜av免费 | 亚洲精品片 | 日日夜夜草 | 一级片在线播放 | 亚洲综合在线视频 | 久久精品中文字幕 | 国产欧美精品一区 | 99成人精品 | 蜜桃精品在线 | 在线视频一区二区三区 | 国产精品毛片av一区 | 亚洲精品二区 | 亚洲精品在线播放 | 亚洲精品乱码久久久久久黑人 | 亚洲精品一区二区三区中文字幕 | 亚洲精品一区在线观看 | 久久99深爱久久99精品 | 亚洲va国产日韩欧美精品色婷婷 | 日韩成人av在线 | 国产午夜精品久久久 | 国产视频欧美 | 国产精品成人69xxx免费视频 | 色欧美日韩 |