1. 程式人生 > >C語言第六講,數組

C語言第六講,數組

src 是你 num 程序 分享 保存 arr 們的 2個

          C語言第六講,數組

一丶什麽是數組

數組,就是一整塊的連續內存空間.

且類型都是一樣的.大小一樣

比如:

  技術分享圖片

1.1數組元素的訪問

我們要訪問數組,例如上面,我們訪問元算2,元素3等等怎麽訪問..

比如有一個數組為:

  

int Arry[3] = {1,2,3};   //數組定義初始化.
Arry[0] = 1;
Arry[1] = 2;                 //數組的訪問
......        

利用下標來進行訪問.

利用程序來進行訪問

   int Ary[10] = { 0 };
    for (int i = 0; i < 10; i++)
    {
        printf(
"%d\r\n",i); }

動態的大小識別.

  int Ary[10] = { 0 };
    for (int i = 0; i < sizeof(Ary)/sizeof(Ary[0]); i++)
    {
        printf("%d\r\n",i);
    }

這裏用到了一個關鍵字,Sizeof, sizeof關鍵字是求大小的關鍵字. 例如我們求數組的總大小. 然後 利用總大小 除以數組元素個數的大小. 就得出來了數組的個數.

1.2一維數組的聲明

在C語言中,或者C++語言中,我們要聲明數組. 不用考慮在哪裏開辟,開辟多大的問題,只需要你給我一個大小.我編譯器自動的來進行開辟內存空間供你使用.

類型 數組名[數組元素的個數]
例如:
    int Ary[3];   //定義一個Ary的數組,有3個元素.

註意,聲明的時候是個數.也就是說數組有3個元素. 但是訪問的時候是下表.從0開始訪問

例如:

  

ary[0] = 1;
ary[1] = 2;
ary[2] = 3;

總共有三個.

聲明的時候則是告訴編譯器, 我聲明的類型是 int類型,數組名字數Ary,個數是3個. 那麽這個數組所占的內存空間則是 3 * 4 = 12個字節大小.

公式計算:

  3(數組元素個數) * 類型 = 內存空間所占大小.

1.3數組應該註意的問題.

在C語言中,數組的聲明不支持動態聲明.

什麽意思?

  也就是說,你需要給定我個數.我來進行申請.但是你不能把這個個數給一個變量保存.讓我跟隨變量來申請.

例如:

  

int nCount = 10;
int Ary[nCount];  //錯誤的

數組的定義可以和普通成員變量的定義放在一起.

例如:

  

int A, ary[5],b;

二丶數組初始化

上面我們雖然定義了數組.但是並沒有仔細講解數組的初始化

數組的初始化常用的有三種.

第一種, 大括號初始化.

int Ary[3] = { 1, 2 ,3}; //數組中的元素1,元素2,元素三分別初始化為了1,2,3

第二種.全部初始化.

int Ary[3] = {0}; //數組的每個元素全部初始化為了0

第三種,不確定個數的初始化.

int Ary[] = { 1, 2, 3} ;//有的時候你並不知道你的數組有多大. 但是又不用動態的申請空間.
所以這樣寫會默認有3個元素. 

三丶二維數組和高維數組

有的時候一維數組並不能滿足我們的需求.

這個是否就需要更高維的數組了.

例如:

  

int Ary[2][2];  定義二維數組

這樣則聲明了一個二維數組. 代表我們申請了 2行 2列的數組. 大小是 2*2的矩陣.

這幾個元素分別是:

  

Ary[0][0] Ary[0][1]
Ary[1][0] Ary[1][1]

二維數組的定義初始化.

int nNum[2][2] = {{0,1},{2,3}}; 使用兩個括號即可.

二維數組對部分元素進行初始化.

int nNum[2][2] = {{1},{0}};

二維數組的訪問

二維數組本質是一維數組.但是為了理解.所以說成是二維數組.

我們利用程序來對其進行訪問.

二維數組初始化

    int Ary[3][4] = {0};
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 4; j++)
        {
            Ary[i][j] = i + j; //重要語句. i是行,j是列
        }
    }
二維數組輸出
    for (int i = 0; i < 3; i++ )
    {
        for (int j = 0; j < 4; j++)
        {
            printf(" %d", Ary[i][j]);
        }
        puts("\r\n");
    }

輸出結果.

技術分享圖片

高維數組則一樣,不過一般用不到高維數組.

C語言第六講,數組