C語言之數組


數組

           數組就是在內存空間中,開辟一個大的空間,然后再將這個大的空間均的分為若干份的小空間,每個小空間用來保存一個數據.

 

1). 數組的專業術語:

                     長度:指的能存放數據的個數

                     下標/索引:每一個數據所在小空間的編號

                     元素:每個小空間里面實際存放的數據

2). 數組的聲明和賦值

A.聲明

                      類型 數組名[要保存的數據的個數];

                      例: int scores [5];               //代表一個保存了五個int類型數據的數組,數組名為scores;

                            char chs [5];               //代表一個保存了五個char類型數據的數組,數組名為chs;

                                float fs [5];                   //代表一個保存了五個float類型數據的數組,數組名為fs;

 

B.賦值

       a.對聲明完成的數組進行逐一賦值

                     數組名 [下標] = 數據;

                     例:int scores[5];

                                scores[0] = 100;                  //為下標為0的元素賦值為100

                                           scores[1] = 1;

                                …………

                                scores[4] = 100;

                    

  注:數組的下標總是從0開始,下標最大的數為數組的長度減1;

          

       b.在數組聲明的時候就初始化

                     語法

 

              1.

                     類型 數組名[長度] = {數據1,數據2,數據3,…..數據n};

                            注:長度有多少個,數據就寫多少個

                     例: int scores [5] = {90,93,23,54,65}; // 數據會從0開始依次賦值

              2.

                     類型 數組名[] = {數據1,數據2,數據3,…..數據n};

                            注:編譯器會自動根據右邊花括號中得數據個數確定你數組的長度

                     例: int scores [] = {90,93,23,54,65}; // 長度為5

                            char chs [] = {'a','b','c'}; //長度為3

     3.

                     類型 數組名[5] = {數據1,數據2};//數據不足5個

                     例: int scores [] = {90,93}; // 這樣賦值,只有下標0和1有值,分別是90和93,其他元素沒有值,系統會為這些沒有沒有值的元素初始化為0

                            注:部分初始化的話,其他沒有賦值的元素會被初始化為0

     4.

                     類型 數組名[5] = { [4] = 數據,[3] = 數據,[2] = 數據,[1] = 數據,[5] = 數據};            //這種是人為的指定給下標為幾的元素賦值

                     例: int scores [5] = {[4] = 45,[3] = 67,[2] = 89,[1] = 27,[5] = 86};

                            注:很少這樣用

3). 數組的取值

                     語法:        數組名 [下標];

                     例:   nums [0]; //取的下標為0的元素    也是就是數組種第一個數據           

          nums [3]; //取的下標為3的元素   也就是數組中第四個數據

4). 遍歷數組

                     就是代表循環這個數組依次的訪問每個元素

 

    例:

                     int scores [5] = {89,76,88,50,99}

                     for(int i = 0;i < 5; i++){

                                printf(“%d\n”,scores[i]);// i的值依次是0,1,2,3,4,剛好對應上面訪問的下標

        }

5). 數組的越界

                     越界:就是訪問了不屬於自己的空間,可能會造成無法預知的后果,要么就是破壞了別的數據,要么就是運行報錯

 

                     例: int scores [5] = {89,76,88,50,99}

                                scores[10] = 200;               //越界了

6). 數組長度的公式

                     數組占用的總字節數 / 每一個元素占用的字節數 = 小空間的個數(數組的個數)    

                     sizeof(數組名)  /  sizeof(數組類型)  

 

       注:sizeof不是函數,是運算符   

 

7). 數組作為函數的參數   **********

                     聲明數組的時候是必須寫長度的,但是把數組作為函數的參數時,定義形參的時候,可以不寫長度,代表所有長度同類型的數組都可以傳過去.

 

           注:在C語言中,除了數組以外,都是值傳遞,而數組的傳遞是引用的傳遞,所以形參的值發生變化,實參的值也會發生改變;但是數組的元素就是一個普通的變量,所以如果是數組的元素作為函數的參數時,同樣是值傳遞;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM