最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++中的數(shù)組詳情

 更新時間:2021年11月03日 10:38:52   作者:Coder_LT  
這篇文章主要介紹了C++中的數(shù)組,數(shù)組其實也是一種數(shù)據(jù)格式,不過是一種復(fù)合類型,它可以存儲多個同類型的值。使用數(shù)組可以將同類型的變量整合起來管理,下面?zhèn)z看看文章的具體舉例內(nèi)容,需要的朋友可以參考一下

1、數(shù)組

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

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

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

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

typename arrayName[arraySize];


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

2、數(shù)組的使用

2.1 元素訪問

對于一個數(shù)組來說,當(dāng)我們需要訪問其中的元素時,可以通過下標(biāo)的方式來訪問。

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

如:

cout << arrayName[0] << endl;

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

int a[3];
cout << a[10] << endl;

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

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

2.2 初始化

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

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

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

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

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

那么數(shù)組 a 的前兩位會被初始化成 0 和 1,其他的位置會被初始化為0。

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

int a[100] = {0};

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

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

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

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

3、C++11 的初始化方式

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

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


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

int a[100] = {};
int b[10] {};


列表初始化時禁止縮窄轉(zhuǎn)化,我們在上一篇文章當(dāng)中講過:

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

到此這篇關(guān)于C++中的數(shù)組詳情的文章就介紹到這了,更多相關(guān)C++中的數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

注:文章轉(zhuǎn)自微信眾號:Coder梁(ID:Coder_LT)

相關(guān)文章

  • C++優(yōu)先隊列用法案例詳解

    C++優(yōu)先隊列用法案例詳解

    這篇文章主要介紹了C++優(yōu)先隊列用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • VS2022實現(xiàn)VC++打包生成安裝文件圖文詳細歷程

    VS2022實現(xiàn)VC++打包生成安裝文件圖文詳細歷程

    本文主要介紹了VS2022實現(xiàn)VC++打包生成安裝文件圖文詳細歷程,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • C++ Opencv imfill孔洞填充函數(shù)的實現(xiàn)思路與代碼

    C++ Opencv imfill孔洞填充函數(shù)的實現(xiàn)思路與代碼

    在Matlab下,使用imfill可以很容易的完成孔洞填充操作,下面這篇文章主要給大家介紹了關(guān)于C++ Opencv imfill孔洞填充函數(shù)的實現(xiàn)思路與代碼,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-09-09
  • C語言 循環(huán)詳解及簡單代碼示例

    C語言 循環(huán)詳解及簡單代碼示例

    本文主要介紹C語言的循環(huán)知識,這里整理了循環(huán)的基礎(chǔ)資料并附簡單的代碼示例詳細講解,有需要的小伙伴可以參考下
    2016-08-08
  • C語言學(xué)好遞歸看這一篇就夠了

    C語言學(xué)好遞歸看這一篇就夠了

    遞歸指的是在函數(shù)的定義中使用函數(shù)自身的方法,舉個例子: 從前有座山,山里有座廟,廟里有個老和尚,正在給小和尚講故事呢!故事是什么呢?"從前有座山,山里有座廟,廟里有個老和尚,正在給小和尚講故事呢!故事是什么呢?"從前有座山,山里有座廟,循環(huán)下去
    2021-10-10
  • C++實現(xiàn)職工工資管理系統(tǒng)課程設(shè)計

    C++實現(xiàn)職工工資管理系統(tǒng)課程設(shè)計

    這篇文章主要為大家詳細介紹了C++實現(xiàn)職工工資管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Windows窗口消息實例詳解

    Windows窗口消息實例詳解

    這篇文章主要介紹了Windows窗口消息,以實例形式詳細羅列了Windows窗口消息,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • C語言鏈表實現(xiàn)學(xué)生成績管理系統(tǒng)

    C語言鏈表實現(xiàn)學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C語言鏈表實現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • C++實現(xiàn)簡單的計算器功能

    C++實現(xiàn)簡單的計算器功能

    這篇文章主要為大家詳細介紹了C++實現(xiàn)簡單的計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • OpenCV實現(xiàn)Sobel邊緣檢測的示例

    OpenCV實現(xiàn)Sobel邊緣檢測的示例

    本文主要介紹了OpenCV實現(xiàn)Sobel邊緣檢測的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評論

邵东县| 当涂县| 宁都县| 临湘市| 游戏| 南投市| 西乌| 博野县| 遂宁市| 巩义市| 崇礼县| 德州市| 云浮市| 山阴县| 光泽县| 弥勒县| 本溪市| 四平市| 天门市| 咸阳市| 雷州市| 贡觉县| 响水县| 武功县| 宁强县| 定州市| 苗栗市| 云林县| 江北区| 太和县| 苍南县| 临泉县| 凤城市| 岐山县| 淮滨县| 舟山市| 从江县| 如皋市| 星座| 合作市| 宜君县|