在C語言程式設計中,常量與變量是構建程式邏輯的兩大基石。理解它們的區別、分類及使用方式,是踏上C語言學習之路的關鍵第一步。本文將系統梳理這兩大核心概念,並輔以語法範例,助你建立扎實的語言基礎。
變量是指在程式執行過程中,其儲存的值可以發生改變的量。它實際上是內存中一塊具名的儲存空間,用於暫存計算過程中的中間結果或最終數據。
在聲明變量時同時賦予初始值,語法格式如下:
類型說明符 變量名1 = 值1, 變量名2 = 值2, ...;
例如:int a = 10, b = 20; 或 float pi = 3.14f;。良好的初始化習慣能有效避免「野指針」或未定義行為帶來的潛在風險。
與變量相反,常量是在程式編譯階段確定、且在整個運行周期中不可修改的固定值。C語言標準庫將常量劃分為五大類型:
即整數字面值,支援三種進制表示:
100, -500 開頭,如 0144 (即十進制100)0x 或 0X 開頭,如 0x64 (即十進制100)帶有小數部分的數值,可採用小數形式(如 3.14, -0.5)或指數形式(科學計數法,如 1.2e3 即 1200,5E-2 即 0.05)。
用半角單引號括起的單個字符,如 'A', '1', '$'。其本質是該字符對應的 ASCII 碼值(整數)。注意:'5' (字符,值為53) 與 5 (整數,值為5) 截然不同。
用半角雙引號括起的字符序列,如 "Hello World"。編譯器會在字符串末尾自動補上空字符 '\0' 作為結束標誌,這是字符串與字符數組的根本區別。例如 "A" 佔用2個字節 ('A' + '\0'),而 'A' 僅佔1個字節。
以標識符(名字)代表常量值,提高代碼可讀性與維護性。使用預處理指令 #define 定義:
#define 常量名 值
// 例:#define PI 3.14159
// #define MAX_SIZE 100
預處理階段會將代碼中所有的「常量名」替換為「值」,不佔用運行時內存,且具有只讀特性。
以反斜槓 \ 開頭,代表無法直接顯示或具有特殊控制功能的字符。常見轉義字符對照表:
| 轉義字符 | 含義 | ASCII碼(十進制) |
|---|---|---|
\n | 換行 | 10 |
\t | 水平製表符 | 9 |
\\ | 反斜槓本身 | 92 |
\' | 單引號 | 39 |
\" | 雙引號 | 34 |
\0 | 空字符 | 0 |
轉義字符本質上也是一個字符常量,可參與運算或作為 char 類型變量的值。
| 特性 | 變量 | 常量 |
|---|---|---|
| 值是否可變 | 運行時可修改 | 運行時不可修改 |
| 內存佔用 | 佔用內存單元 | 字面值/符號常量不佔運行時內存 |
| 定義方式 | 類型說明符 變量名 | 字面值 / #define / const 修飾 |
掌握常量與變量的分類、定義及差異,能讓你在後續學習運算符、表達式、流程控制時更加得心應手。下一站,我們將深入探討 C 語言豐富的數據類型體系。