和我一起學C吧
努力是可以提升智力的 5.1.2 數組的使用: 如何定義和使用數組,數組的下标和下标的範圍
前面有數組的簡單介紹,可以去回顧一下其相關定義
變量名稱[元素數量];
例: int grades[100];
double weight[20];
注:元素數量必須是整數。
數組的特點:
- 其中所有的元素具有相同的資料類型;
- 一旦建立,不能改變大小;
- 數組中的元素在記憶體中是連續依次排列的。
數組的單元
- 數組的每個單元就是數組類型的一個變量
- 使用數組時放在[ ]中的數字叫做下标或索引,下标從0開始計數:
Grades[0]; Drades[99] ;
有效的下标範圍
- 編譯器和運作環境都不會檢查數組下标是否越界,無論是對數組單元做讀還是寫。
- 一旦程式運作,越界的數組通路可能造成問題,導緻程式崩潰。(segmentation fault)
- 也有可能不會造成嚴重後果(機率較小)。
- 是以,程式的有效下标值:[0,數組的大小-1] 。
I nt A[10]; A[7]=0; 表示在數組A中,将7這個位置指派為0; 長度為0 的數組,可以存在,但是無用。
5.1.3 數組的例子:統計個數
例題:
寫一個程式,輸入數量不确定的[0,9]範圍内的整數,統計每一種數字出現的次數,輸入-1表示結束。(運作過程中,不定個數的輸入範圍内的數,即可統計每個數輸入的個數)
以下為對應代碼:
5.2.1 數組的運算
在一組給定的資料中,如何找出某個資料是否存在? 1 、 數組的內建初始化:
Int a[ ]={2,4,6,7,1,3,5,9,11,13,23,14,32}
- 直接用大括号給出數組的所有元素的初始值。
- 不需要給出數組的大小,編譯器替你數數。
補充 : int a[13]={2} // {2,4,6,7,1,3,5,9,11,13,23,14,32};
表示數組為13個數,隻給第一個數指派為2,那其他數都初始化為0。
以下為對應代碼:
2、內建初始化時的定位 Int a[10] = { [0] = 2, [2] = 3,6,};
- 用[n]在初始化資料中給出定位;
- 沒有定位的資料接在前面的位置後面;
- 其他位置的值補0;
- 也可以不給出數組大小,讓編譯器算;
- 特别适合初始資料稀疏的數組。
以下為對應代碼:
3 、 數組 的大小
- sizeof 給出整個數組所占據的内容的大小,機關是位元組:
sizeof(a)/sizeof(a[0])
- sizeof(a[0])給出數組中單個元素的大小,于是相除就得到了數組的機關個數。
優點: 這樣的代碼,一旦修改數組中初始的資料,不需要修改周遊的代碼。
以下為對應代碼:
4、 數組的指派
- 數組變量本身不能被指派。
- 要把一個數組的所有元素交給另一個數組,必須采用周遊(即寫一個循環):
for ( i = 0; i b[i] = a[i]; }
- 通常都是使用for循環,讓for循環變量i從0到
- 常見錯誤是:
循環結束條件是<=數組長度,或;
離開循環後,繼續用i的值來做數組元素的下标!
程式設計練習解析彙總(2) & 數組 其中列印九九表,for語句的代碼貼錯圖了,以下為原代碼:
END
可愛的你一定會
掃一掃它吧❤