學習乙個新的知識,總是從它的定義,到它的宣告,再到它的使用.
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...