6.5 關鍵字 const

寫陣列時經常需要一個固定的常數(例如陣列最大大小)。const 讓你宣告一個不能被改變的變數,編譯器會幫你檢查是否有人試圖修改它。

基本用法:

const int MAX_N = 100000;  // 常數,不能更改
int a[MAX_N];              // 用常數做陣列大小

重要規則:

  1. const 變數宣告時一定要初始化
  2. 之後不能改變其值
  3. 編譯器會在編譯時期檢查,把常數展開到程式碼裡

範例程式碼

#include<iostream>
using namespace std;

// 全域常數,可以在陣列宣告中使用
const int N_MAX = 100000;
const int MOD = 1000000007;

int a[N_MAX];
int b[N_MAX];

int main() {
    // 讀入資料個數
    int n;
    cin >> n;

    // 讀入 n 個資料到陣列 a
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }

    // 計算累積和
    int sum = 0;
    for (int i = 0; i < n; i++) {
        sum = (sum + a[i]) % MOD;  // 每次都取模,避免溢位
        b[i] = sum;
    }

    // 輸出結果
    for (int i = 0; i < n; i++) {
        cout << b[i] << '\n';
    }

    return 0;
}

執行結果(範例輸入):

輸入:
5
10 20 30 40 50

輸出:
10
30
60
100
150

動手試試看:把 MOD = 1000000007 改成別的數字(例如 100),看看輸出如何改變。試著預測結果。