<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          C語(yǔ)言數(shù)組基礎(chǔ)篇

          共 3211字,需瀏覽 7分鐘

           ·

          2021-01-07 11:11

          前言

          上章節(jié)講到C語(yǔ)言的遞歸,詳細(xì)內(nèi)容請(qǐng)參見(jiàn)上章節(jié)。本章節(jié)主要給大家講解批量處理數(shù)據(jù),C語(yǔ)言中的數(shù)組。

          C語(yǔ)言中的數(shù)組

          當(dāng)我們處理大量數(shù)據(jù)值時(shí),我們需要任意數(shù)量的不同變量。隨著變量數(shù)量的增加,程序的復(fù)雜性也會(huì)增加,因此程序員會(huì)對(duì)變量名稱(chēng)感到困惑。在某些情況下,我們需要處理大量類(lèi)似的數(shù)據(jù)值。為了使這項(xiàng)工作更容易,C編程語(yǔ)言提供了一個(gè)名為“數(shù)組”的概念。

          1. 數(shù)組是一種特殊類(lèi)型的變量,用于一次存儲(chǔ)多個(gè)相同數(shù)據(jù)類(lèi)型的值。

          2. 數(shù)組是存儲(chǔ)在具有單個(gè)名稱(chēng)的連續(xù)內(nèi)存位置中的類(lèi)似數(shù)據(jù)項(xiàng)的集合。

          數(shù)組聲明

          在C語(yǔ)言中,當(dāng)我們想要?jiǎng)?chuàng)建一個(gè)數(shù)組時(shí),我們必須知道要存儲(chǔ)在該數(shù)組中的值的數(shù)據(jù)類(lèi)型以及要存儲(chǔ)在該數(shù)組中的值的數(shù)量。

          1. 創(chuàng)建一個(gè)數(shù)組語(yǔ)法: 類(lèi)型 數(shù)組名[size]

          2. 創(chuàng)建具有大小和初始值的數(shù)組的語(yǔ)法:類(lèi)型 數(shù)組名[size]={value1,value2,...};

          3. 創(chuàng)建沒(méi)有大小和初始值的數(shù)組的語(yǔ)法:類(lèi)型 數(shù)組名[size]={value1,value2,...};

          在上面的語(yǔ)法中,數(shù)據(jù)類(lèi)型指定我們存儲(chǔ)在該數(shù)組中的值的類(lèi)型,size指定可以存儲(chǔ)在該數(shù)組中的最大值數(shù)。

          示例代碼

          int a [3] ;

          這里,編譯器使用單個(gè)名稱(chēng)“a”分配6個(gè)字節(jié)的連續(xù)內(nèi)存位置,并告訴編譯器將三個(gè)不同的整數(shù)值(每個(gè)內(nèi)存為2個(gè)字節(jié))存儲(chǔ)到該6個(gè)字節(jié)的內(nèi)存中。對(duì)于上述聲明,內(nèi)存組織如下:

          在上面的內(nèi)存分配中,所有三個(gè)內(nèi)存位置都有一個(gè)通用名稱(chēng)“a”。因此無(wú)法直接訪問(wèn)單個(gè)內(nèi)存位置。因此,編譯器不僅分配內(nèi)存,還為數(shù)組的每個(gè)單獨(dú)的內(nèi)存位置分配一個(gè)數(shù)字引用值。該參考編號(hào)稱(chēng)為“索引”或“下標(biāo)”或“索引”。以上示例的索引值如下:

          訪問(wèn)數(shù)組中的元素

          使用'arrayName'和'indexValue'的組合來(lái)標(biāo)識(shí)數(shù)組的各個(gè)元素。我們使用以下通用語(yǔ)法來(lái)訪問(wèn)數(shù)組的各個(gè)元素:

          數(shù)組名[數(shù)組下標(biāo)];

          對(duì)于上面的例子,各個(gè)元素可以表示如下:

          例如,如果我們想要將值賦給上面數(shù)組'a'的第二個(gè)內(nèi)存位置,我們使用以下語(yǔ)句...

          示例代碼

          a [1] = 100 ;

          上述轉(zhuǎn)讓聲明的結(jié)果如下:

          C語(yǔ)言數(shù)組分類(lèi)

          在c編程語(yǔ)言中,數(shù)組分為兩種類(lèi)型。它們?nèi)缦拢?/span>

          一維數(shù)組


          在c編程語(yǔ)言中,一維數(shù)組用于存儲(chǔ)相同數(shù)據(jù)類(lèi)型的值列表。換句話說(shuō),單一維數(shù)組用于存儲(chǔ)一行值。在單維數(shù)組中,數(shù)據(jù)以線性形式存儲(chǔ)。

          一維數(shù)組的聲明:datatype arrayName [size];

          示例代碼

          int rollNumbers [60] ;

          上述單維數(shù)組的聲明保留了60個(gè)連續(xù)的2個(gè)字節(jié)的存儲(chǔ)單元,每個(gè)存儲(chǔ)單元的名稱(chēng)為rollNumbers,并告訴編譯器只允許整數(shù)值進(jìn)入這些存儲(chǔ)單元。

          一維數(shù)組的初始化

          我們使用以下通用語(yǔ)法來(lái)聲明和初始化具有大小和初始值的單維數(shù)組。

          datatype arrayName [size] = {value1,value2,...};

          示例代碼

          int marks [6] = { 89, 90, 76, 78, 98, 86 } ;

          上述單維陣列聲明保留6個(gè)連續(xù)的2字節(jié)存儲(chǔ)位置,每個(gè)存儲(chǔ)位置帶有名稱(chēng)標(biāo)記,并在第一存儲(chǔ)位置初始化為值89,在第二存儲(chǔ)位置初始化為90,在第三存儲(chǔ)位置為76,在第四存儲(chǔ)位置為78,在98第五個(gè)內(nèi)存位置和第六個(gè)內(nèi)存位置86。

          我們還可以使用以下通用語(yǔ)法初始化單維數(shù)組,而無(wú)需指定大小和初始值。

          datatype arrayName [] = {value1,value2,...};

          如果在未指定任何大小的情況下創(chuàng)建數(shù)組,則必須初始化該數(shù)組。在這種情況下,基于初始化的值的數(shù)量來(lái)確定陣列的大小。

          示例代碼

          int marks [] = { 89, 90, 76, 78, 98, 86 } ; char studentName [] = "btechsmartclass" ;

          在上面的示例聲明中,數(shù)組'marks'的大小為6,數(shù)組'studentName'的大小為16。這是因?yàn)樵谧址麛?shù)組的情況下,編譯器在末尾存儲(chǔ)一個(gè)名為\ 0(NULL)的exttra字符。

          訪問(wèn)單維數(shù)組的元素

          在c編程語(yǔ)言中,要訪問(wèn)單維數(shù)組的元素,我們使用數(shù)組名稱(chēng),后跟要訪問(wèn)的元素的索引值。這里索引值必須用方括號(hào)括起來(lái)。數(shù)組中元素的索引值是在存儲(chǔ)器分配時(shí)給予每個(gè)元素的引用號(hào)。單維數(shù)組的索引值以第一個(gè)元素的零(0)開(kāi)始,并且每個(gè)元素的值增加一。數(shù)組中的索引值也稱(chēng)為下標(biāo)索引

          我們使用以下一般語(yǔ)法來(lái)訪問(wèn)單維數(shù)組的各個(gè)元素:arrayName [indexValue]

          示例代碼

          marks [2] = 99 ;

          在上面的語(yǔ)句中,'marks'數(shù)組的第三個(gè)元素被賦值為'99'

          多維數(shù)組


          數(shù)組數(shù)組稱(chēng)為多維數(shù)組。簡(jiǎn)單來(lái)說(shuō),使用多個(gè)維度(大小)創(chuàng)建的數(shù)組稱(chēng)為多維數(shù)組。多維數(shù)組可以是二維數(shù)組三維數(shù)組四維數(shù)組或更多...

          最常用和常用的多維數(shù)組是二維數(shù)組。二維數(shù)組用于以表格的形式存儲(chǔ)數(shù)據(jù)。我們還使用二維數(shù)組來(lái)創(chuàng)建數(shù)學(xué)矩陣

          二維數(shù)組聲明

          我們使用以下通用語(yǔ)法來(lái)聲明二維數(shù)組:datatype arrayName [rowSize] [columnSize];

          示例代碼

          int matrix_A [2][3] ;

          二維陣列儲(chǔ)量的形式的每個(gè)2個(gè)字節(jié)6個(gè)連續(xù)存儲(chǔ)器位置中的上面的聲明2行3列

          二維陣列的初始化

          我們使用以下通用語(yǔ)法來(lái)聲明和初始化具有特定行數(shù)和帶有初始值的coloumns的二維數(shù)組。

          datatype arrayName [rows] [colmns] = {{r1c1value,r1c2value,...},{r2c1,r2c2,...} ...};

          示例代碼

          int matrix_A [2][3] = { {1, 2, 3},{4, 5, 6} } ;

          上述二維陣列聲明以2行3列的形式保留6個(gè)連續(xù)的2個(gè)字節(jié)的存儲(chǔ)位置。并且第一行用值1,2和3初始化,第二行用值4,5和6初始化。

          我們也可以初始化如下......

          示例代碼

          int matrix_A [2][3] = { {1, 2, 3}, {4, 5, 6} } ;

          訪問(wèn)二維數(shù)組的單個(gè)元素

          在ac編程語(yǔ)言中,為了訪問(wèn)二維數(shù)組的元素,我們使用數(shù)組名稱(chēng),后跟行索引值和要訪問(wèn)的元素的列索引值。這里行和列索引值必須用單獨(dú)的方括號(hào)括起來(lái)。在二維數(shù)組的情況下,編譯器為行和列分配單獨(dú)的索引值。

          通用語(yǔ)法來(lái)訪問(wèn)二維數(shù)組的各個(gè)元素:arrayName [rowIndex] [columnIndex]

          示例代碼

          matrix_A [0][1] = 10 ;

          在上面的語(yǔ)句中,具有行索引0和matrix_A數(shù)組的列索引1的元素被賦值為10

          數(shù)組在C語(yǔ)言中的應(yīng)用

          在c語(yǔ)言中,數(shù)組用于廣泛的應(yīng)用程序。其中很少如下

          ●數(shù)組用于存儲(chǔ)值列表

          在c語(yǔ)言中,單維數(shù)組用于存儲(chǔ)相同數(shù)據(jù)類(lèi)型的值列表。換句話說(shuō),單維數(shù)組用于存儲(chǔ)一行值。在單維陣列中,數(shù)據(jù)以線性形式存儲(chǔ)。

          ●數(shù)組用于執(zhí)行矩陣運(yùn)算

          我們使用二維數(shù)組來(lái)創(chuàng)建矩陣。我們可以使用二維數(shù)組對(duì)矩陣執(zhí)行各種操作。

          ●數(shù)組用于實(shí)現(xiàn)搜索算法

          我們使用單維數(shù)組來(lái)實(shí)現(xiàn)搜索算法

          1. 線性搜索

          2. 二進(jìn)制搜索

          ●數(shù)組用于實(shí)現(xiàn)排序算法

          我們使用單維數(shù)組來(lái)實(shí)現(xiàn)排序算法

          1. 插入排序

          2. 冒泡排序

          3. 選擇排序

          4. 快速排序

          5. 合并排序等,

          ●數(shù)組用于實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)

          我們使用單維數(shù)組來(lái)實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)

          1. 堆棧使用數(shù)組

          2. 隊(duì)列使用數(shù)組

          ●數(shù)組也用于實(shí)現(xiàn)CPU調(diào)度算法

          這些內(nèi)容將會(huì)在數(shù)據(jù)結(jié)構(gòu)篇章中詳細(xì)講解

          尾言

          對(duì)于數(shù)組應(yīng)用在這里做個(gè)簡(jiǎn)單介紹,更多的內(nèi)容大家可以自行完善,或者等待更新,到時(shí)候會(huì)分類(lèi)給你們編寫(xiě)專(zhuān)欄介紹。

          本章節(jié)作業(yè):使用C語(yǔ)言一維數(shù)組和二維數(shù)組實(shí)現(xiàn)以下表格數(shù)據(jù)的輸入和打印

          只有投入才有回報(bào),只有忠誠(chéng)才有責(zé)任,只有主動(dòng)才有創(chuàng)新,沒(méi)有付出就沒(méi)有收獲。



          瀏覽 19
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩在线三级片 | 国内视频一区 | 91n-最新地址发布页 | A一无码| 轻轻操免费视频 |