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

Linux 嵌入式Linux技術分享 2019-07-19
"

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

一維數組

如下,聲明瞭一個包含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。

以上是老韓關於Linux c基礎數組的總結歡迎一起討論,如有不足歡迎指點;對Linux c或者Linux驅動感興趣的朋友可以收藏關注,我會持續更新的,謝謝支持!

"

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

一維數組

如下,聲明瞭一個包含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。

以上是老韓關於Linux c基礎數組的總結歡迎一起討論,如有不足歡迎指點;對Linux c或者Linux驅動感興趣的朋友可以收藏關注,我會持續更新的,謝謝支持!

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

相關推薦

推薦中...