位元詩人 [C++] 程式設計教學:變數 (Variable)

C++變數
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

前言

在電腦程式中,資料 (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,但會引發編譯錯誤,導致程式碼無法編譯。

關於作者

身為資訊領域碩士,位元詩人 (ByteBard) 認為開發應用程式的目的是為社會帶來價值。如果在這個過程中該軟體能成為永續經營的項目,那就是開發者和使用者雙贏的局面。

位元詩人喜歡用開源技術來解決各式各樣的問題,但必要時對專有技術也不排斥。閒暇之餘,位元詩人將所學寫成文章,放在這個網站上和大家分享。