陣列:相同的資料型別成員組成的資料。
如:整型陣列,浮點型陣列。
陣列的形式為:
型別修飾符陣列名[常量表示式] = ;
說明:陣列在定義的時候,
[ ]裡必須用常量表示式,不能用變數表示式來代替。但是陣列在使用的時候,
[ ]中可以用變數來代替。
陣列和迴圈是一對好**。
1、只有定義時,[ ]內為常量表示式。不能放變數。
//
int n =3;
//
int arr1[n] = ;//報錯
2、[ ]可以放算術式。
//
int arr2[1+2] = ;
3、初始化時可以放多餘空間的元素(但是這是不對的)
//
int arr3[3] = ;
4、定義時,可以不給出常量表示式。(陣列可以通過元素個數推算空間)。給出多少個元素,會自動給你分配多少空間
//
int arr4 = ;
5、前三個空間值分別為10,20,30,後面的7個空間全部清0,為0。
//
int arr5[10] = ;
6、陣列初始化
//
int arr6[3] = ;
//
//錯誤的
//
int arr7 = ;
一些例子: //
練習 //
float arr_f[3] = ;
//使用陣列
//
int arr8[3] = ;
//
printf("%d",arr8[0]);
//
printf("%d",arr8[1]);
//
printf("%d",arr8[2]);
//使用陣列可以用下標取值 //
下標可以使用變數 //
陣列可以使用迴圈取出所有值
//
for (int i = 0; i < 3; i ++)
1、儲存的時候越界:
//第一種,儲存的時候越界
//
int arr9[3] = ;//此時,
40已經被寫入記憶體,但是取值的時候,
40所在的記憶體空間已經被修改,所以取值的時候,很難取到
40//
//
for (int i = 0; i < 4; i ++)
//
2、使用的時候越界 //
第二種,使用的時候越界
//
int arr10[3] = ;
//
//
arr10[0] = 50;//自己定義的陣列,可以隨便改。
//
//
printf("%d",arr10[0]);//列印
50//
//
//
arr10[3] = 50;//可以訪問之後的任意空間,本陣列的第
4個記憶體空間位置,被改動。
//
//
printf("%d",arr10[3]);//列印50
c語言可以通過我們定義的陣列,操作本陣列之後的所有記憶體空間,那些空間不屬於這個陣列,誰都可以去用。因此可以在上面進行讀寫。這樣就會使得程式不安全。
陣列越界是一件很危險的事情,我們無法把控,因此我們在操作程式是,盡可能的避免越界產生。
陣列是乙個整體,不能直接參與運算,只能對各個元素進行處理。
一些**: //
練習 //1
、定義乙個具有
20個元素的整型陣列,
30~70
間的隨機數,求和。
//
//定義陣列,並清零,初始化。
//
int array[20] = ;
//
//求和變數
//
int sum = 0;
//
printf("20個隨機數為:
\n");
//
//產生
20個隨機數
//
for (int i = 0; i < 20; i++)
//
//求和
//
for (int i = 0; i < 20 ; i ++)
//
//
//
printf("\n\n20個數的和
sum = %d",sum);
//2、複製陣列。
//
int array1[5] = ;
//
int array2[5] = ;
//
for (int i = 0; i < 5; i ++)
氣泡排序
從第乙個數開始,用第乙個數分別與後面的數進行比較,若是大於後面的數,則將該數放在後面。然後再用第二個數跟後面的數比較,若大於後面的數,則將該數放在後面,依次類推,一直到最後乙個數比較完畢為止。此時,排序已經完成。 //
陣列排序
//
//氣泡排序(只適合小範圍的資料排序)(
20遍)
//
int sort_arr[5] = ;
//
//外層迴圈,控制排序趟數
,趟數為
:陣列元素個數
-1//
for (int i = 0; i < (5-1)/*5-1,表示陣列有
n個數比較,只比較
n-1趟
*/; i ++)
//
} //
} //
//列印
//
printf("氣泡排序後:
");//
for (int i = 0; i < 5; i ++)
//練習
//
//隨機產生10個
[20,
40]間的數,排序
//
//
int array[10] = ;
//
printf("排序前的
10個數為:
\n");
//
//取隨機數
//
for (int i = 0; i < 10 ; i ++)
//
//
//排序開始
//
//外層
for迴圈,控制比較多少趟。
//
for (int i = 0; i < 10-1; i ++)
//
} //
} //
printf("\n排序後的
10個數為:
\n");
//
for (int i = 0 ; i < 10 ; i ++)
第一種定義:
char array[5] = ;
第二種定義:
char array1[6] = "hello";
第二種定義在定義的時候,自動新增乙個'\0'。這個\0有著特定的意義,在接下來輸出這個陣列時,將會用%s來作為佔位符,當%s在輸出陣列時,遇到了』\0』這個特定意義的「結束識別符號」時,就會終止列印,停止輸出。
此時,陣列的實際長度為:字元陣列元素個數+1,要留出'\0'的位置。
//
//%s佔位符
for (int i = 0; i <5 ; i++)
//
printf("%s",array);//列印:
hello
一些情況:
//
//自動推算出有
6個位置
//
char array2 = "hello";
//
//
//
//前面補滿,後面補
0//
char array3[10] = "hello";
//儲存列印中文
//
char array3[20] = "藍歐
��
C語言上學期整理(第4章)
如 輸入乙個數,要求輸出其絕對值 if x 0 printf d x else printf d x 用if語句進行檢查。例4.3 求方程的根 include include intmain return0 例4.2 輸入兩個實數,按由小到大的順序輸出這兩個數。include intmain pri...
C 語言知識整理
c 語言知識整理 前言 c語言語法即關鍵字的使用方法 1.關鍵字介紹如何處理01 記憶體意識 1.關鍵字分類 2.變數符號實質宣告 定義 賦值 3.型別符號的使用struct union enum typedef 4.符號修飾關鍵字extern volatile static const restr...
C語言演算法整理
1.求素數和判斷素數 方法一 篩選法求素數 include void main for i 0 i 100 i if a i 1 printf d i 方法二 根式求素數 時間複雜度小 include include int main if j sqrt i return 0 判斷素數 includ...