<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>

          認(rèn)識數(shù)據(jù)結(jié)構(gòu)之【數(shù)組】

          共 1778字,需瀏覽 4分鐘

           ·

          2021-04-16 01:34

          須彌零一
          認(rèn)識數(shù)據(jù)結(jié)構(gòu)之【數(shù)組】今天來簡單說說數(shù)組,錯過往期文章的朋友可以點(diǎn)擊下面列表的鏈接查閱。

          認(rèn)識數(shù)據(jù)結(jié)構(gòu)系列往期文章:

          ?認(rèn)識數(shù)據(jù)結(jié)構(gòu)之【樹】

          數(shù)組

          數(shù)組的定義

          數(shù)組(Array)是有序的元素序列。將有限個類型相同的變量集合命名,這個名稱就叫做數(shù)組名。組成數(shù)組的各個變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時也稱為下標(biāo)變量。用于區(qū)分?jǐn)?shù)組的各個元素的數(shù)字編號稱為下標(biāo)。數(shù)組是在程序設(shè)計中,為了處理方便, 具有相同類型的若干元素按有序的形式組織起來的一種形式。這些有序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。

          8511f651b0913813dd86f51c34698f03.webp

          上圖表示的是一個長度為10的數(shù)組,它的變量名為name;上圖中0-9的數(shù)字表示了數(shù)組name的下表和元素(數(shù)組下標(biāo)從0開始)。

          數(shù)組的特點(diǎn)

          1.數(shù)組是相同數(shù)據(jù)類型的元素的集合。2.數(shù)組中的各元素的存儲是有先后順序的,它們在內(nèi)存中按照這個先后順序連續(xù)存放在一起。3.數(shù)組元素用整個數(shù)組的名字和它自己在數(shù)組中的順序位置來表示。例如,a[0]表示名字為a的數(shù)組中的第一個元素,a[1]代表數(shù)組a的第二個元素,以此類推。

          4c140aa4499638dcb8e4b5f4282775c4.webp

          二維數(shù)組

          前面介紹的數(shù)組只有一個下標(biāo),稱為一維數(shù)組, 其數(shù)組元素也稱為單下標(biāo)變量。在實際問題中有很多量是二維的或多維的。二維數(shù)組在概念上是二維的,即是說其下標(biāo)在兩個方向上變化, 下標(biāo)變量在數(shù)組中的位置也處于一個平面之中, 而不是象一維數(shù)組只是一個向量。但是,實際的硬件存儲器卻是連續(xù)編址的, 也就是說存儲器單元是按一維線性排列的。如何在一維存儲器中存放二維數(shù)組,可有兩種方式:一種是按行排列, 即放完一行之后順次放入第二行。另一種是按列排列, 即放完一列之后再順次放入第二列。

          6baacc75fe49475c121b17c19456b42d.webp

          三位數(shù)組&多維數(shù)組

          三維數(shù)組,是指維數(shù)為三的數(shù)組結(jié)構(gòu)。三維數(shù)組是最常見的多維數(shù)組,由于其可以用來描述三維空間中的位置或狀態(tài)而被廣泛使用。 三維數(shù)組就是維度為三的數(shù)組,可以認(rèn)為它表示對該數(shù)組存儲的內(nèi)容使用了三個獨(dú)立參量去描述,但更多的是認(rèn)為該數(shù)組的下標(biāo)是由三個不同的參量組成的。
          在C語言等絕大部分語言中是允許構(gòu)造多維數(shù)組的。多維數(shù)組元素有多個下標(biāo), 以標(biāo)識它在數(shù)組中的位置,所以也稱為多下標(biāo)變量。您可以參考上面二維數(shù)組的結(jié)構(gòu)圖嘗試著畫一下三維數(shù)組的內(nèi)存結(jié)構(gòu),當(dāng)你理解了如何從二維數(shù)組到三位數(shù)組,那你也就完全理解了多維數(shù)組。此處作者就偷個懶,不繪制三位數(shù)組的內(nèi)存結(jié)構(gòu)了。

          字符數(shù)組

          用來存放字符量的數(shù)組稱為字符數(shù)組,即數(shù)組的每個元素為一個字符類型的元素。在C、Java等大部分語言中,字符串都是使用字符數(shù)組來表示的。比如在C語言中用以下三種任意一種方式為字符變量name賦值:
          char name[]={'j','e','r','e','m','y'};char name[]={"jeremy"};char name[]="jeremy";
          雖然分別使用printf(name)打印上面三個name顯示的結(jié)果都是jeremy。但實際上,上面的三個name數(shù)組的長度是不一樣的,這是因為使用字符串賦值的方式,會有一個看不見的字符\0在末尾的位置。比如字符串jeremy?在內(nèi)存中的樣子是下面這樣的:

          a8a4a84e441e5694d6bd460c0ea50027.webp

          另外,Java中的toCharArray()方法是不會多出來這個\0結(jié)束符的。這是因為Java String的toCharArray()方法,本來就是在復(fù)制的時候沒有復(fù)制那個\0字符,源碼如下:
          publicchar[] toCharArray(){// Cannot use Arrays.copyOf because of class initialization order issueschar result[]=newchar[value.length];System.arraycopy(value,0, result,0, value.length);return result;}

          最后

          本篇文章主要介紹了數(shù)組的一些簡單知識,明確了數(shù)組是一組同種類型的數(shù)據(jù)集合,并且是在內(nèi)存結(jié)構(gòu)上連續(xù)的數(shù)據(jù)結(jié)構(gòu)。下期文章將介紹鏈表這種數(shù)據(jù)結(jié)構(gòu),它是在邏輯上聯(lián)系的,和數(shù)組有一些相似的地方。此處就不多說下,大家下期見~(●ˇ?ˇ●)


          ---- END ----



          歡迎關(guān)注我的公眾號“須彌零一”,原創(chuàng)技術(shù)文章第一時間推送。


          瀏覽 71
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  91日日夜夜| 日韩爱操视频 | 看高清无码在线视频 | 国产精品久久久久夜色 | 亚洲欧视频在线播放 |