首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言階段 02 核心知識點總結:布林型別、運算子與分支結構

     編輯:關於C語言

C 語言階段 02 核心知識點總結:布林型別、運算子與分支結構

本文整理 C 語言進階基礎階段的六大核心知識點,涵蓋布林型別、關係運算子、邏輯運算子、if 分支、枚舉型別、switch 多重分支,為後續程式控制流程奠基。

一、BOOL 布林型別

  • 儲存「真」或「假」兩種狀態
  • C 標準庫無原生 bool(C99 前),常用 int 模擬:非 0 為真,0 為假
  • C++ / C99 <stdbool.h> 提供 true(1)、false(0)
  • 常見用法:int flag = 1; if (flag) ...

二、關係運算子

用於比較兩運算元,結果為布林值(0/1):

運算子含義範例
>大於a > b
>=大於等於a >= b
<小於a < b
<=小於等於a <= b
==等於a == b
!=不等於a != b

注意:== 判斷相等,= 為指派,極易混淆。

三、邏輯運算子

運算子名稱真值表短路特性
&&邏輯與同真才真,一假則假左運算元為假 → 右運算元不求值
||邏輯或同假才假,一真即真左運算元為真 → 右運算元不求值
!邏輯非真變假,假變真單目運算子,無短路

短路特性常用於防禦性程式設計:if (p != NULL && p->val > 0)

四、if 分支結構

三種基本形式

// 1. 單向分支
if (條件) { 陳述句; }

// 2. 雙向分支
if (條件) { 陳述句1; } else { 陳述句2; }

// 3. 多向分支
if (條件1) { 陳述句1; }
else if (條件2) { 陳述句2; }
...
else { 陳述句N; }

條件運算子(三元運算子)

結果 = (條件) ? 真值 : 假值;
// 相當於
if (條件) 結果 = 真值; else 結果 = 假值;

五、枚舉型別

enum Color { RED, GREEN, BLUE };  // 預設值 0, 1, 2
enum Color c = RED;
enum Status { ERR = -1, OK = 0, PENDING = 1 };  // 自訂值
  • 本質為 int 常數別名,增強程式可讀性
  • 可隱性轉換為整數參與運算
  • C++11 enum class 提供強型別枚舉

六、switch 多重分支

switch (整數運算式) {
    case 常數1: 陳述句1; break;
    case 常數2: 陳述句2; break;
    ...
    default: 陳述句N;
}

關鍵規則

  • 判斷運算式必須為整數型別(int、char、enum)
  • case 標籤必須為編譯期常數
  • break 缺失會貫穿 到下一個 case(刻意利用可實現多標籤共用邏輯)
  • default 為可選,處理所有 case 不符合的情況

常見錯誤與最佳實踐

錯誤正確說明
if (a = 5)if (a == 5)指派 vs 比較
if (0 < x < 10)if (0 < x && x < 10)C 不支援鏈式比較
switch 無 break加 break 或註解 /* fallthrough */避免非預期貫穿
邏輯運算子優先級混淆善用括號明確分組> && > ||

總結

掌握「布林邏輯、比較運算、短路求值、分支結構、枚舉語意、switch 跳轉表機制」,即可撰寫清晰、高效、可維護的 C 語言控制流程程式碼。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved