C語言 陣列

2021-06-26 11:06:14 字數 3733 閱讀 6863

一.陣列的定義

1.定義陣列

資料型別

變數名 = 初值

型別修飾符

陣列名 = ;

定義了乙個int型別,元素個數為5,陣列名為array的陣列

int array[5] = ;

陣列下標(索引)的取值範圍是0~元素個數-1

printf("%d\n", array[0]);
賦值

array[3] =6;

觀察下面的乙個陣列,沒有必要,因為這個陣列只含有乙個元素,可以直接定義乙個變數

int array1 = ;

定義乙個字元型陣列,儲存

iphone

char string = ;
用來定義乙個比較長的字元型陣列

char string1 ="program ended with exit code:";

定義乙個整型陣列

int array[5] = ;

手動列印陣列全部元素

printf("%d ", array[0]);

printf("%d ", array[1]);

printf("%d ", array[2]);

printf("%d ", array[3]);

printf("%d ", array[4]);

當想要賦值貼上的時候,要馬上想到使用迴圈

遍歷陣列

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

定義陣列,長度不能是變數,只能是常量或者是常量表示式

例一:求陣列元素的和 

int a[20], b[20];

// 定義乙個累加器

int sum = 0;

// 為陣列a元素賦值

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

printf("陣列a元素的和:%d\n", sum);

例二:將陣列

a的元素複製到陣列b中

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

例三:將兩個陣列對應的元素和儲存到另乙個陣列中

// 定義兩個資料來源陣列,乙個目標陣列

int srcone[10],srctwo[10],dest[10];

// 給三個陣列賦值

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

// 輸出源陣列srcone

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

printf("\n");

// 輸出源陣列srctwo

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

printf("\n");

// 輸出目標陣列dest

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

printf("\n");

二.氣泡排序

int array[10] = ;

printf("排序前:");

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

printf("\n");

//通常情況下,排序預設按照公升序排列

// 整個過程需要9次

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

printf("排序後:");

for (int k =0; k <10; k++)

三.字串的基本使用

char string ="iphone4";

1.對於字串,有乙個快捷的輸出方式,就是以%s為轉義字元進行輸出

2.需要注意的是,輸出字串時,表示式寫陣列名(就是字元陣列的名字,並且不加方括號)

3.%s後面的表示式需要給位址,用&符號取出元素在記憶體當中的位址

4. 陣列名代表的就是首元素的位址, 可以近似的理解為string與 &string[0]恒等

5.字元陣列的兩種建立方式最大的不同就是用雙引號建立的字元陣列後面自帶乙個'\0'

用sizeof計算的是所佔空間大小

printf("%lu\n",sizeof(string));// %lu代表的是無符號的長整形

printf("%s\n", string);

printf(

"%s\n"

, &string[

2]);

輸出字串

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

printf("%s\n", &string[0]);

例一:測試求字串長度的函式(系統自帶)

printf("字串長度測試函式");

// strlen的引數需要寫位址(1.可以直接寫陣列名 2.寫&string[0])

// strlen的返回結果為字串的長度,型別為unsigned long

unsigned long length = strlen(&string[0]);

printf("length = %lu\n", length);

例二:字串拷貝    

printf("字串拷貝函式測試:\n");

// strcpy(dest, src) 從src拷貝到dest

// 需要注意的地方目標陣列的容量一定要大於等於陣列原陣列的長度

//兩個引數都需要寫位址

char dest[7] = ;

strcpy(dest, string);

printf("%s\n", dest);

例三:字串的拼接   

printf("字串拼接函式測試:\n");

// strcat(dest, src)

//需要注意的地方:注意目的陣列的空間一定要大於等於兩個陣列之和

例四:字串的比較   

printf("字串比較函式測試:\n");

// strcmp()

// 'a' 65, 'a' 97, '0' 48

printf("%d\n", strcmp("iphone","iphone"));

例五:將乙個字元陣列反向轉換   

// 定義乙個char型別的陣列

char a="abcdef";

//獲取字串的長度

unsignedlong length = strlen(a);

// 迴圈 將第i個字元與第length - i - 1個字元交換

for (int i =0; i < length - i -1; i++)

// 列印字串

printf("%s",a);

c語言陣列

陣列 構造資料型別之一 陣列是具有一定順序關係的若干個變數的集合,組成陣列的各個變數稱為陣列的元素。陣列中各元素的資料型別要求相同,用陣列名和下標確定。陣列可以是一維的,也可以是多維的。在科學計算中,許多重要的應用都是基於陣列的。所謂一維陣列是指只有乙個下標的陣列。它在計算機的記憶體中是連續儲存的。...

C語言陣列

在變數作函式引數時,所進行的值傳送是單向的。即只能從實參傳向形參,不能從形參傳回實參。形參的初值和實參相同,而形參的值發生改變後,實參並不變化,兩者的終值是不同的。而當用陣列名作函式引數時,情況則不同。由於實際上形參和實參為同一陣列,因此當形引數組發生變化時,實參陣列也隨之變化。當然這種情況不能理解...

C語言 陣列

陣列 void test1 for int i 0 i 5 i for int i 0 i 5 i 陣列資料倒序存放 void test2 printf 請輸入5個學生的成績 n for int i 4 i 0 i printf 輸出5個學生的成績 n for int i 0 i 5 i 將陣列的長...