c語言初級(四) 陣列

2021-09-22 05:50:35 字數 1828 閱讀 6525

陣列

陣列是變數的集合,是一種批量定義變數的方法。

一維陣列:

定義:型別 名字[數量];//裡的整數表示變數的數量

int arr[5] <=> int num1,num2,num3,num4,num5;

與普通變數一樣,預設值不確定,為了安全需要初始化。

使用:名字[編號];//裡的整數表示編號

arr[0] arr[1] arr[2] arr[3] arr[4]

編號也叫下標,範圍是:0 ~ 數量-1。

遍歷:c語言中沒有提供遍歷陣列的語句,只能與for迴圈配合。

使用迴圈變數當前陣列的下標。

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

初始化:型別 名字[數量] = ;

1、初始化資料多於陣列的數量,多餘的會丟棄,但也會產生警告。

2、初始化資料少於陣列的數量,不夠則補零。

3、在初始資料的情況下陣列數量可以省略,編譯器會計算出資料的數量然後告訴陣列有多長。

sizeof(arr)計算出陣列的總位元組數

sizeof(arr[0])計算出其中乙個變數的位元組數

sizeof(arr)/sizeof(arr[0])

練習:輸入乙個正整數,分解顯示。

1234 1 2 3 4

#include int main()

;int num = 0 , cnt = 0;

printf("請輸入乙個正整數:");

陣列越界:1、c語言中陣列可以越界,沒有語法錯誤(不能檢查,也不想檢查)。

2、陣列越界使用時訪問的是它之後的記憶體(可能是其他變數,也可能是其他陣列,也有可能無主的,也有可能屬於作業系統)。

陣列越界的後果:

1、產生髒資料

2、一切正常

3、段錯誤(核心已轉儲)

二維陣列:把變數排成乙個方陣。

定義:型別 陣列名[行數][列數];

int arr[2][2];

使用:陣列名[行編號][列編號]。

編號從零開始。

arr[0][0],arr[0][1]

arr[1][0],arr[1][1]

遍歷:配合雙層for,外層迴圈負責遍歷行,內層迴圈負責遍歷列。

for(int i=0; i<2; i++)

printf(」\n");

}初始化:陣列名[行編號][列編號] =,,};

練習:定義乙個5*5的二維陣列並初始化,找出最大值的下標。

變長陣列:陣列的長度在編譯時可以先不確定,在執行期間根據實際情況進行計算,當執行到陣列定義語句時,就必須確定下來,才能在改變。

優點:可根據實際情況確定陣列的長度,達到節約記憶體的目的。

缺點:不能初始化。

c語言初級

個人是乙個菜鳥,受到影響,來一篇c語言基礎 眾所周知,c語言在如今的社會,對一些工程是很有幫助的,在下哪,雖然是個土八路,就是那種自己學的,我發現這種東西必須深入下去,你才會有飯吃,學習一門技術難度係數是很大的,這不是吹牛,我哪,最喜歡的不是別的,而是專注,我以前不知道,所以學的雜亂無章,現在我覺得...

C 初級學習 陣列

string students new string 6 1.多維陣列在宣告時必須指定陣列的長度,其格式為 type length,length,length.或直接在宣告時賦值,由系統自動判斷其長度。int a new int 3,3 int b 交錯陣列在宣告時,至少要指定第一維陣列的長度,格式...

C語言初級指標

include include int main printf d n sizeof a 求整個陣列的位元組數,4 4 16 printf d n sizeof a 0 此時陣列名隱式退化成指標,在32位作業系統下是答案是4 printf d n sizeof a 取到了整數1,答案是4 print...