博客專欄

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

Linux C - C基礎(chǔ)篇六(數(shù)組)

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

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

一維數(shù)組

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

int ia[10];

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

int val = ia[0];

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

ia[9] = 100;

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

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

字符數(shù)組還可以如下初始化:

char ca2[] = "hello";

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

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

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;

}

二維數(shù)組

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

int ia[ 4 ] [ 3 ];

可以進(jìn)行如下初始化:

int ia[ 4 ][ 3 ] = {

{1, 2, 3},

{11, 12, 13},

{21, 22, 23},

{31, 32, 33},

}

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

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

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

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

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


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。

傳感器相關(guān)文章:傳感器工作原理


漏電開關(guān)相關(guān)文章:漏電開關(guān)原理
漏電保護(hù)開關(guān)相關(guān)文章:漏電保護(hù)開關(guān)原理
熱式質(zhì)量流量計相關(guān)文章:熱式質(zhì)量流量計原理
流量計相關(guān)文章:流量計原理


關(guān)鍵詞: 數(shù)組

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉