文章目錄
- 數據類型
- 1、數據類型(12個)
- 控制語句
- 2、控制語句關鍵字(12個)
- 存儲類型
- 3、存儲類型關鍵字(4個)
- 其他關鍵字
- 4、其他關鍵字(4個)?
一共32個關鍵字分為
數據類型
1、數據類型(12個)
關鍵字 | 說明 | 示例 |
---|---|---|
?**char **? | 聲明字符類型(1字節) | char grade = 'A'; |
?**int **? | 聲明整型(通常4字節) | int age = 25; |
?**float **? | 單精度浮點型(約6-7位小數) | float pi = 3.14f; |
?**double **? | 雙精度浮點型(約15位小數) | double precise = 3.1415926535; |
?**short **? | 短整型(通常2字節) | short temp = -10; |
?**long **? | 長整型(通常4或8字節) | long population = 1000000000L; |
?**signed **? | 有符號類型(默認) | signed int value = -42; |
?**unsigned **? | 無符號類型(僅非負數) | unsigned int counter = 100; |
?**void **? | 空類型(無返回值/無參數) | void printHello() { printf("Hello"); } |
?**struct **? | 結構體(封裝多個類型) | struct Student { int id; char name[20]; }; |
?**union **? | 聯合體(共享內存空間) | union Data { int i; float f; } data; |
?**enum **? | 枚舉(定義命名常量) | enum Color { RED, GREEN, BLUE }; |
一般常用的有:
先來四個比較特殊的:
- 枚舉 enum
- 結構體 struct
- 聯合體 union
- 空類型 void
有符號無符號兩個:
- 有符號 signed
- 無符號 unsigned
剩下6個具體的數據類型:
- 字符型 char(一個字節,也就是u8,uint8_8)
- 整數型 int(一般是4個字節,也就是u32,uint32_32)
- 短整型 short(一般是兩個字節也就是u16,uint16_t)
- 長整型 long(一般是4或者8字節)
- 單浮點型 float(一般是6到7為小數)
- 雙浮點型 double(一般是15位小數)
以上會有一些組合
例如:
unsigned int
unsigned short
unsigned long
控制語句
2、控制語句關鍵字(12個)
關鍵字 | 說明 | 示例 |
---|---|---|
?**if **? | 條件判斷 | if (score >= 60) { printf("Pass"); } |
?**else **? | 否定分支 | else { printf("Fail"); } |
?**switch **? | 多分支選擇 | switch (grade) { case 'A': ... } |
?**case **? | 分支匹配項 | case 1: printf("Option 1"); break; |
?**default **? | 默認分支 | default: printf("Invalid"); |
?**for **? | 循環(明確次數) | for (int i = 0; i < 5; i++) { ... } |
?**while **? | 當型循環 | while (x > 0) { x--; } |
?**do **? | 直到型循環(先執行) | do { x++; } while (x < 10); |
?**break **? | 跳出循環/分支 | if (error) break; |
?**continue **? | 跳過本次循環 | if (i == 3) continue; |
?**goto **? | 無條件跳轉(慎用) | goto cleanup; ... cleanup: ... |
?**return **? | 函數返回值 | return a + b; |
主要是
break:
#include <stdio.h>
int main() {for (int i = 0; i < 10; i++) {if (i == 5) {break; // i=5 時退出循環}printf("%d ", i);}return 0;
}
輸出?:0 1 2 3 4
?說明?:循環在 i=5
時被終止,后續迭代不再執行
for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (j == 1) break; // 僅退出內層循環printf("i=%d, j=%d\n", i, j);}
}
僅跳出最近一層結構?
- 在嵌套循環中,
break
只終止最內層循環:
輸出?:
i=0, j=0
i=1, j=0
i=2, j=0
與 continue
的區別?
break
:完全退出循環。continue
:跳過當前迭代,進入下一次循環
continue:
#include <stdio.h>
int main() {for (int i = 1; i <= 10; i++) {if (i % 2 == 0) {continue; // 跳過偶數}printf("%d ", i);}return 0;
}
輸出?:1 3 5 7 9
?說明?:i
為偶數時,continue
跳過 printf
,直接進入下一次循環
#include <stdio.h>
int main() {int i = -5, sum = 0;while (i <= 5) {if (i < 0) {i++;continue; // 跳過負數}sum += i;i++;}printf("非負數和:%d", sum);return 0;
}
輸出?:非負數和:15
?說明?:負數時跳過累加,但需手動更新循環變量 i++
,避免死循環
for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {if (j == 1) continue; // 僅跳過內層當前迭代printf("i=%d, j=%d\n", i, j);}
}
continue
僅影響最內層循環。嵌套循環中不會跳過外層:
輸出?:
i=0, j=0
i=0, j=2
i=1, j=0
…(其他同理)
與 break
的區別?
continue
:僅跳過當前迭代,循環繼續。break
:?終止整個循環,直接退出
continue
的核心價值是優化循環控制,適合以下場景:
- ?過濾數據?:跳過無效值(如負數、零值)。
- ?條件處理?:特定條件下忽略部分計算(如跳過偶數的打印)。
- ?簡化邏輯?:替代多層
if
嵌套,提升代碼可讀性。
存儲類型
3、存儲類型關鍵字(4個)
關鍵字 | 說明 | 示例 |
---|---|---|
?**auto **? | 自動變量(默認局部) | auto int x = 10; (通常省略) |
?**static **? | 靜態變量(生命周期全局) | static int count = 0; (跨函數調用保留值) |
?**register **? | 寄存器變量(建議快速訪問) | register int i; (編譯器可能忽略) |
?**extern **? | 外部聲明(跨文件引用) | extern int globalVar; (定義在其他文件) |
其他關鍵字
4、其他關鍵字(4個)?
關鍵字 | 說明 | 示例 |
---|---|---|
?**const **? | 常量(值不可修改) | const int MAX = 100; |
?**sizeof **? | 計算類型/變量大小 | size_t size = sizeof(int); // 輸出4 |
?**typedef **? | 類型別名 | typedef int Integer; Integer num = 5; |
?**volatile **? | 易變變量(防編譯器優化) | volatile int flag = 0; (多線程/中斷中常用) |
文章源碼獲取方式:
如果您對本文的源碼感興趣,歡迎在評論區留下您的郵箱地址。我會在空閑時間整理相關代碼,并通過郵件發送給您。由于個人時間有限,發送可能會有一定延遲,請您耐心等待。同時,建議您在評論時注明具體的需求或問題,以便我更好地為您提供針對性的幫助。
【版權聲明】
本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議。這意味著您可以自由地共享(復制、分發)和改編(修改、轉換)本文內容,但必須遵守以下條件:
署名:您必須注明原作者(即本文博主)的姓名,并提供指向原文的鏈接。
相同方式共享:如果您基于本文創作了新的內容,必須使用相同的 CC 4.0 BY-SA 協議進行發布。
感謝您的理解與支持!如果您有任何疑問或需要進一步協助,請隨時在評論區留言。