進擊的KFC 第四節 C語言 一維陣列

2021-07-05 22:33:07 字數 2119 閱讀 9950

學習乙個新的知識,總是從它的定義,到它的宣告,再到它的使用.

1.1陣列定義  :  是儲存多個相同資料型別的多個資料  ,陣列 相當於乙個容器

1.2    陣列宣告: 資料型別 陣列名[常量表示式(表示你有幾個初值,即元素的個數)] = ;

需求:宣告乙個陣列,用來儲存年齡     int age[ 3 ]  = ;

1.3 取出陣列中的資料    使用  陣列名[下標]  ,切記下標從 0 開始

int  a[5] = ;

// 遍歷,輸出所有值

for(int i = 0;i < 3;i++);  等於  int a[5] = ; 

(2)如果宣告時沒有給出元素的個數,那麼初值有幾個元素,那麼陣列就有幾個元素      int a[ ] = ;

(3)系統不會提示系統越界 ,需要自己注意 ,切記 : 不要陣列 越界

(4)陣列在記憶體當中,是一段連續的儲存區域; 陣列名相當於乙個陣列開始的首位址(也是第乙個元素的位址)

注意:陣列不能直接賦值 , array1 = array2  是錯誤的 .  陣列的名字是 元素的首位址 ,位址 是乙個常量 ,而常量是在程式執行期間不能被改變的量,所以陣列不能直接                        被賦值

1.4 經典例題

//  氣泡排序

//  精髓: 前後比較大小,如果前面大於後面 兩個數交換wizhi 一次繼續

//  比較趟數 : 陣列元素個數 - 1;

// 每趟比較的個數: 元素個數 - 1 - i;

// sizeof(a) / size(int)   求出 陣列的元素個數 = 陣列a的所佔位元組數 / int 型別 所佔位元組數

int array[ 7] = ;

for(int i = 0;i < sizeof(a) / sizeof(int) - 1;i++);

// 字串形式

char str[ ]= "iphone";

兩種形式的區別:字串比字元陣列多乙個'\0'; 字串是字元陣列,但字元陣列不一定是字串

char str1[ ]=;

char str2[ ] = "iphone";

// 列印資料型別和變數 的 所佔位元組數的函式  sizeof

// 佔位符 用%lu 無符號長整形

printf("%lu",sizeof(str1) );  // 6個位元組

printf("%lu",sizeof(str2));  // 7個位元組,多乙個'\0',要算進去

字串的四個數:

(1) 計算字串的長度  strlen 

// 列印的是有效長度,不算'\0'在內 . 從第乙個字元開始,如果不是'\0' 長度開始加1,直到遇到'\0'結束.也就是說strlen求字元陣列長度,因為字元陣列沒有'\0'

printf("%lu",strlen(str));

(2)字串的拷貝  strcpy(目標字串,源字串)

// 拷貝:從第乙個字元開始拷貝 遇到 '\0'結束

// 注意:目標字串的長度最好大於源字串

char str [20] = ;

char str1 = "**** u";

strcpy = (str,str1);

// 列印字串 用佔位符%s 乙個字元乙個字元輸出,如果遇到'\0'結束     

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

(3) 字串的拼接  strcat(str1,str2)   把str2拼接到str1後面

// 注意: 被拼接的字串長度一定要夠接收拼接完的字串

char str1 = "i";

char str2 = "love u";

strcat(str1,str2);  

(4) 字串的比較  strcmp(str1,str2)

// 從第乙個字元開始比 ,如果一樣,比較下乙個字元,如果不一樣,開始進行比較,比較的內容是相應的ascll碼的值,前面的減去後面的,如果值為正數

,前面的大於後面的,值為負數,前面的小於後面的.比較結束. 如果返回值是0,那麼兩個字串相同.

char str1 = "i";

char str2 = "love u";         

int x = strcmp(str1,str2);

第四節 C 函式過載

在真實的軟體開發中,經常要使用到函式過載,尤其在類的設計中,經常遇到。c 的函式過載是指,多個函式可以使用同乙個函式名,但是條件是函式的引數列表必須不同,引數列表內,可以是引數的數目不同,引數的型別不同等,如下所示 include void setvalue int one void setvalu...

C 第四節課

知識點 三種屬性,using改變許可權,繼承時名字的遮蔽,函式過載的遮蔽問題,派生類的建構函式,多繼承類,命名衝突,虛繼承,多繼承的建構函式,在基類中,基類的public,protected private 成員都是可以訪問的,但是類的物件只能訪問public成員 public繼承 基類的publi...

第四節 單鏈表 一

變數的三要素 名字,記憶體位址,值 變數的左值,右值 左值指變數的記憶體位址 右值 值 在賦值表示式中,賦值號左邊需要左值,右邊需要右值 如a a 100 指標變數 指標變數的右值本身又是乙個左值。個人上課未理解的點 頭指標 指向第乙個結點的指標,鍊錶的定義 struct node 頭指標的實現 s...