C語言 陣列,字串陣列,氣泡排序

2021-07-05 23:02:22 字數 1949 閱讀 8340

一、陣列

1.陣列的定義: intarr=;   或者  int arr[10]=;

初始化元素的個數可以不全,未初始化的元素預設為0

2.求陣列的空間:

sizeof(arr); 或者sizeof(元素)*元素的個數;

3.求陣列的個數:

假設arr為int型別的陣列,sizeof(arr)/sizeof(int); 或者sizeof(arr)/sizeof(arr[0]);

注:在實際開發過程,往往不直接寫陣列個數,而是用求陣列個數。這樣有利於總數發生變化時,遍歷陣列時不需要修改每一處。

4.越界問題:c語言內部沒防止越界,程式設計師只能通過**來防止出現。

二、字串陣列

1.字串陣列:是一種特殊的陣列。特徵是:

(1)必須是char型別的陣列。

(2)在陣列定義的有效空間內,必須含有乙個數值是『\0』的位元組。

(3)'\0'作為字串的結束標誌。

2. 字串陣列的初始化:

(1)指定元素個數的陣列:

char str1[10] = ;  //不是有效字元,因為缺少』\0』結束符號

char str2[10] = "aab"; //不可超過9個有效字元

(2)不指定個數的字串陣列,根據初始化個數包括'\0'

char str3 = "abcdef";  //申請7個位元組的陣列空間,多了乙個」\0」

char str4 = ; // 申請是4個位元組的陣列空間

3.陣列長度和字串長度:

(1)strlen函式:是用來計算字串中有效字元的長度。(不包括結尾符)

(2)sizeof:求字串陣列的元素個數,sizeof得出的結果至少比strlen大1以上。

(3)strlen函式:計算方法是從陣列頭迴圈到結尾符'\0'結束,得出的字串有效字元長度總是小於sizeof得出的的數值。

(4)sizeof:得出的陣列長度與陣列內每個元素儲存的數值無關;而strlen函式返回的字串長度,與結尾符'\0'在陣列中的位置有關。

char str1=;

char str2="console";

printf("sizeof(str1)=%d\n",sizeof(str1)); // 5

printf("sizeof(str2)=%d\n",sizeof(str2)); // 8

printf("strlen(str2)=%d\n",strlen(str2)); // 7

三、陣列做引數

陣列做引數時, 可以不指定長度,也可以隨便指定任何長度。因為陣列做引數時性質已經變了,本質上只傳遞了陣列的位址(指標)給形參。陣列的空間特徵已經消失了,無法通過形式引數獲取**陣列的元素個數。

無論實參陣列有多少個元素,使用sizeof獲取形式引數的大小結果一定是4。(因為任何乙個指標變數占用的大小都是4個位元組)。

#include void bubble_sort(int a,int nlen);

void print(int a,int nlen);

int main(int argc, char* argv)

; print(arr,sizeof(arr)/sizeof(arr[0]));

bubble_sort(arr,sizeof(arr)/sizeof(arr[0]));

printf("排序後的陣列:\n");

print(arr,sizeof(arr)/sizeof(arr[0]));

return 0;

}//氣泡排序

void bubble_sort(int a,int nlen)

j++;

} i++; }}

void print(int a,int nlen){

int i=0;

//while(i

氣泡排序對字串陣列排序

給定乙個字串排序 以字母為準,比如 a b或者b 同字母的情況,小寫字母大於大寫字母,比如 a a private static void testcomparestring 使用do while boolean ischanged int nmaxindex asource.length 1 st...

C語言 陣列 1 2 多維陣列 字串陣列

二維陣列 1 一維陣列和二維陣列 1 int ages 50 2 int agesii 3 10 陣列能夠存放 3 個陣列,每個陣列存放 10 個數值,共 3x10 個資料元素 2 二維陣列的記憶體狀況 3 二維陣列的宣告 1 宣告乙個兩行三列二維陣列 陣列第二維下標必須給定,第一維下標可省略不寫 ...

字串陣列排序

1,給定乙個字串陣列。按照字典順序進行從小到大的排序。思路 1,對陣列排序。可以用選擇,冒泡都行。2,for巢狀和比較以及換位。3,問題 以前排的是整數,比較用的比較運算子,可是現在是字串物件。字串物件怎麼比較呢?物件中提供了用於字串物件比較的功能。compareto 方法。public class...