前言
在電腦程式中,資料 (data) 存在記憶體 (memory) 中。變數 (variable) 是資料的名稱或標籤。藉由變數,電腦程式可操作資料。
宣告變數 (Variables)
宣告變數時,需標註變數的資料型態:
int i;
此處的變數 i
的資料型態是 int
(帶號整數)。
若需要賦值,可在宣告變數時一併賦值:
int i = 10;
在現代 C++ 可以用另一種語法來初始化變數 (C++11):
int i {10};
若資料形態可由程式自動判別,可以改用 auto
來標註資料型態 (C++11):
auto i {10};
以下短例建立變數後將其輸出到終端機:
#include <iostream>
int main(void)
{
/* Declare the variable `result` and
initialize it with some value. */
auto result {3 * 4};
/* Print a message including `result`
to stdout. */
std::cout << "3 * 4 = " << result
<< std::endl;
return 0;
}
宣告常數 (Constant)
使用 const
保留字可以宣告常數:
const auto PI = 3.14159;
識別字 (Identifier) 的命名規則
以下是 C++ 識別字的命名規則:
- 以字母 (letter) 或底線 (underscore) 開頭
- 除了開頭外,可用字母、底線、數字 (digit) 等命名
- 具有大小寫敏感 (case-sensitive)
- 不能用保留字 (keyword)
保留字 (Keywords)
保留字在 C++ 程式碼中已有既定的意義,不能做為識別字。這裡有一份 C++ 保留字的清單。
變數的可視域 (Scope)
C++ 變數的生命週期 (可視域) 是以區塊 (block) 為範圍。超過區塊後該變數即消失。
以下 C++ 範例程式無法編譯:
#include <iostream>
int main(void)
{
/* An anonymous block. */
{
auto i {9999};
}
/* Oops!. */
std::cout << i << std::endl;
return 0;
}
因為變數 i
在超過匿名區塊即消失。下一行敘述試圖呼叫 i
,但會引發編譯錯誤,導致程式碼無法編譯。