陣列
陣列是變數的集合,是一種批量定義變數的方法。
一維陣列:
定義:型別 名字[數量];//裡的整數表示變數的數量
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...