C語言整理 4

2021-07-06 02:05:59 字數 4333 閱讀 6035

陣列:相同的資料型別成員組成的資料。

如:整型陣列,浮點型陣列。

陣列的形式為:

型別修飾符陣列名[常量表示式] = ;

說明:陣列在定義的時候,

[ ]裡必須用常量表示式,不能用變數表示式來代替。但是陣列在使用的時候,

[ ]中可以用變數來代替。

陣列和迴圈是一對好**。

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...