博客專欄

        EEPW首頁 > 博客 > Linux C - C基礎篇六(數組)

        Linux C - C基礎篇六(數組)

        發布人:嵌入式Linux 時間:2023-01-12 來源:工程師 發布文章

        數組是一個單一數據類型對象的集合,其中單個對象并沒有被命名,但是我們可以通過它所在數組中的位置對它進行訪問,這種訪問形式被稱作索引訪問或下標訪問。

        一維數組

        如下,聲明了一個包含10個int對象的數組(整形數組),每個對象被稱作是數組ia的一個元素,元素下標是0-9而不是1-10,共10個元素,因為沒有初始化,所以每個元素默認都是0。只定義數組但是不初始化時,必須在[]中指定數組的大小。

        int ia[10];

        將ia的第1個元素賦值給val:

        int val = ia[0];

        將常量100賦值給ia的最后一個元素:

        ia[9] = 100;

        數組可以被顯式地用一組數來初始化,這組數用逗號分開并放在大括號中,如下聲明了一個包含10個字符對象的數組(字符數組),并顯式的初始化了每個元素,顯式初始化數組時可以不指定數組的大小,系統會根據初始化元素的數量來分配數組的大小:

        char ca1[] = {'h', 'e', 'l', 'l', 'o'};

        字符數組還可以如下初始化:

        char ca2[] = "hello";

        注意:以上兩種定義初始化方法是有區別的,數組ca1的大小是5;數組ca2的大小是6,在元素'o'后面會默認添加'\0',這是個字符串結束符。

        要把一個數組拷貝到另一個中去 必須按順序拷貝每個元素,例如:

        int index;

        int array_size = 7;

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

        int main()

        {

        int ia2[ array_size ];

        for (index= 0; index< array_size; ++index)

        ia2[ index] = ia1[ index];

        return 0;

        }

        二維數組

        我們也可以定義二維數組,每一維用一個方括號對來指定,第一維稱為行,第二維稱為列,例如下面定義了一個4行3列的二維數組:

        int ia[ 4 ] [ 3 ];

        可以進行如下初始化:

        int ia[ 4 ][ 3 ] = {

        {1, 2, 3},

        {11, 12, 13},

        {21, 22, 23},

        {31, 32, 33},

        }

        用來表示行的花括號即被內嵌在里邊的花括號是可選的,下面的初始化與前面的是等價的,只是有點不清楚:

        int ia[4][3] = {1, 2, 3, 11, 12, 13, 21, 22, 23, 31, 32, 33};

        訪問第1行第1個的元素:

        int val = ia[0][0];

        給第4行的最后一個元素賦值:

        ia[3][2] = val;

        下面的定義只初始化了每行的第一個元素,其余的元素被初始化為0,即ia[0][0] = 0,ia[1][0] = 3,ia[2][0] = 6,ia[3][0] = 9:

        int ia[ 4 ][ 3 ] = { {0}, {3}, {6}, {9} };

        如果省略了花括號,結果會完全不同,下面的定義:

        int ia[ 4 ][ 3 ] = { 0, 3, 6, 9 };

        初始化了第一行的3個元素和第二行的第一個元素,其余元素都被初始化為0。


        *博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。

        傳感器相關文章:傳感器工作原理


        漏電開關相關文章:漏電開關原理
        漏電保護開關相關文章:漏電保護開關原理
        熱式質量流量計相關文章:熱式質量流量計原理
        流量計相關文章:流量計原理


        關鍵詞: 數組

        技術專區

        關閉
        主站蜘蛛池模板: 清水县| 清水河县| 云和县| 郧西县| 洪洞县| 亚东县| 贺州市| 景东| 确山县| 凤山县| 龙井市| 崇左市| 普兰县| 敦煌市| 盈江县| 新营市| 迭部县| 广汉市| 古蔺县| 孝感市| 新乡市| 永嘉县| 铅山县| 杭州市| 卓资县| 贡觉县| 驻马店市| 宁夏| 天峻县| 宜昌市| 黄石市| 沧源| 广饶县| 古浪县| 石台县| 登封市| 卓尼县| 柳林县| 松江区| 通河县| 兰溪市|