6.5 關鍵字 const
寫陣列時經常需要一個固定的常數(例如陣列最大大小)。const 讓你宣告一個不能被改變的變數,編譯器會幫你檢查是否有人試圖修改它。
基本用法:
const int MAX_N = 100000; // 常數,不能更改
int a[MAX_N]; // 用常數做陣列大小
重要規則:
const變數宣告時一定要初始化- 之後不能改變其值
- 編譯器會在編譯時期檢查,把常數展開到程式碼裡
¶範例程式碼
#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),看看輸出如何改變。試著預測結果。