| 型別 | 關鍵字 | 典型大小 | 範圍/精度 |
| 字元 | char | 1 byte | -128~127 或 0~255 |
| 整數 | int | 4 bytes | -2G~2G |
| 短整數 | short | 2 bytes | -32K~32K |
| 長整數 | long | 4/8 bytes | 平台相關 |
| 單精度浮點 | float | 4 bytes | 7 位有效數字 |
| 雙精度浮點 | double | 8 bytes | 15 位有效數字 |
| 寬字元 | wchar_t | 2/4 bytes | Unicode 字元 |
用 sizeof(型別) 取得實際大小(編譯期常數)。
型別修飾符
| 修飾符 | 適用型別 | 效果 |
signed | 整數、字元 | 有號(預設) |
unsigned | 整數、字元 | 無號,範圍 0~2N-1 |
short | int | 至少 16 位 |
long | int、double | 至少 32 位 / 雙精度擴展 |
組合範例:unsigned long int、signed char。
有號/無號陷阱
short i; // 有號,範圍 -32768~32767
unsigned short j; // 無號,範圍 0~65535
j = 50000;
i = j; // i 變 -15536(溢位截斷)
型別限定符
| 限定符 | 含義 |
const | 不可修改,編譯期常數傳播 |
volatile | 防止編譯器優化,硬體暫存器/多執行緒共用變數 |
restrict | (C99/C++ 延伸) 指標唯一存取,助優化 |
儲存類別
| 關鍵字 | 壽命 | 作用域 | 典型用途 |
auto | 區塊 | 區塊 | 區域變數預設(C++11 改為型別推導) |
register | 區塊 | 區塊 | 建議存暫存器(現代編譯器自動優化,已棄用) |
static | 程式 | 區塊/檔案 | 區域保值、檔案內連結、類別共享成員 |
extern | 程式 | 全域 | 跨檔案共用全域變數/函數 |
mutable | 物件 | 成員 | 允許 const 成員函數修改 |
運算符完整分類
算術
+ - * / % ++ --
關係
== != > < >= <=
邏輯
&& || !
位元
& | ^ ~ << >>
指派
= += -= *= /= %= <<= >>= &= ^= |=
雜項
sizeof typeof & * . -> ?: , [ ] ( )
陣列:固定大小同質序列
宣告與初始化
int arr[10]; // 未初始化
int arr2[5] = {1,2,3,4,5};// 完全初始化
int arr3[] = {1,2,3}; // 推導大小 = 3
int arr4[10] = {}; // 全 0 (C++11)
存取與遍歷
for (int i = 0; i < 10; ++i) arr[i] = i + 100;
for (int i = 0; i < 10; ++i) cout << i << ' ' << arr[i] << endl;
// 範圍 for (C++11)
for (int& x : arr) x *= 2;
for (int x : arr) cout << x << ' ';
多維陣列
int matrix[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
// 存取 matrix[row][col]
完整範例:陣列統計
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
const int N = 10;
int a[N];
for (int i = 0; i < N; ++i) a[i] = i + 100;
cout << "Index" << setw(13) << "Value" << endl;
for (int i = 0; i < N; ++i)
cout << setw(7) << i << setw(13) << a[i] << endl;
return 0;
}
新手必記十大要訣
main 回傳 int,0 表成功
- 每個陳述式以
; 結尾
- 變數先宣告後使用,建議初始化
- 區分
= (指派) 與 == (比較)
- 整數除法截斷小數,需轉
double 得小數
- 陣列下標從 0 起,越界未定義行為
using namespace std; 僅用於 .cpp,勿用於 .h
- 善用
const 防呆
- 編譯警告視為錯誤 (
-Wall -Werror)
- 養成縮排與命名慣例(如
snake_case)
- 上一篇文章: C++ 核心語法精講:指標、引用、時間處理、I/O 流與結構體
- 下一篇文章: C++ 智慧指標進階:shared_ptr 循環引用與自定義刪除器深度解析
Copyright ©
程式碼之家 All Rights Reserved