C語言基礎之陣列

2021-08-11 07:43:45 字數 1935 閱讀 7896

//定義乙個陣列,10個元素為int型別的陣列

//型別名(int[10]) + 變數名(arr)

int arr[10];

printf(「sizeof(arr) = %d.\n」, sizeof(arr)); //列印結果為40位元組,即為整個陣列大小

printf(「szieof(int[10]) = %d.\n」, sizeof(arr[10])); //列印結果為4位元組,即為陣列中乙個元素大小

陣列可以定義成:int [10]arr; c語言規定不能這麼寫

定義陣列時候:陣列大小就確定了

char buf[5] = ;

int i = 0;

for (i=0; i

<5; i++)

最後列印結果是『a-e』;即為對buf[5]這個陣列每個位置都指定了值,稱為陣列的完全初始化。

int arr[5];            //陣列中的5個數全為隨機數

int arr_[5] = ; //陣列中的5個數前兩個為1,2;其餘為0

int arr_3[5] = {}; //陣列中的5個數全為0

char buf = ;   //3個位元組

printf("sizeof(buf) = %d.\n", sizeof(buf));

char buf_ = ; //3個位元組

char buf_1 = ; //3個位元組

char buf_2 = "abc"; //4個位元組,因為字串存放時最後一位是『/0』

char buf_3 = ; //4個位元組

在c語言中賦值中左值代表的是記憶體空間,右值代表的是值(即為記憶體空間內容)

在陣列中,陣列元素的使用,要單個使用,不能整體使用

例如:

int arr [5];

arr++;

這樣的賦值就是不被允許的,因為arr = arr+1; 陣列名在程式執行開始就確定了常數字址,並指向陣列首元素的首位址,所以值不可以被改變

//氣泡排序

int arr[10];

//賦值

int i = 0, j = 0, temp = 0;

for (i=0; i<10; i++)

scanf("%d", arr+i);

//遍歷

for (i=0; i<10; i++)

printf("\n");

//核心演算法

for (i=0; i<10-1; i++)

}

}//列印

printf("---------------排序後-----------\n");

for (i=0; i<10; i++)

printf("\n");

氣泡排序的核心思路是兩次巢狀迴圈,比較陣列裡相鄰兩個數大小,使陣列順序排列。

//核心演算法

for (i=0; i

<10; i++)

}}

選擇排序的核心思路是,用陣列的第乙個數去和其餘每個數相比,保證第乙個數最大,接著用陣列第二個數和其餘數相比,保證第二個數為其次大,以此類推。

void func2(int arr)

void main ()

void func3(int arr, int lenth)

int main(void)

; //函式呼叫只要傳進去實參的變數名字

func3(arr, 10);

printf("arr[1] = %d.\n", arr[1]);

}

C語言基礎之陣列

在c語言中,陣列屬於構造資料類。陣列元素可以是基本資料型別也可以是構造型別。一維陣列定義 型別識別符號 陣列名 常量表示式 例 int a 10 下標從0開始 陣列元素的表示式為 陣列名 下標 下標可以是整型常量或者表示式 陣列元素初始化 1.在定義陣列時賦初值 例 int a 10 2.給陣列部分...

C 語言基礎 陣列

二維陣列,就是以陣列作為元素的陣列。挺拗口的,看看它跟一維陣列的對比 左邊的 a 是一維陣列,陣列中包含 4 個 int 型變數 a 0 a 1 a 2 a 3 右邊的 b 是二維陣列,陣列中包含 2 個 int 型一維陣列 b 0 b 1 而 b 0 和 b 1 中又分別包含 3 個 int 型變...

C 語言基礎 陣列

一維陣列 資料型別 陣列名 new 資料型別 長度 陣列經過初始化以後,陣列元素有預設的初始值,double型別為 0.0 int型別為 0 char型別為 a bool型別為 false,string型別為 null。二維陣列 char ch console.writeline ch 1,1 ch...