型修飾子
変更できない変数
以前、プリプロセッサディレクティブで#defineを覚えましたね
これは、プリプロセッサによって定数がコンパイル時に展開されました
ここでは、定数に近い働きをする変数の作成を学習します
C言語では、変数へのアクセス方法を指定する型修飾子というものがあります
constは、その変数が初期化時に与えた初期値以降の変更を許さないことを表します
#defineと違うのはメモリに配置するということです
当然、初期化時に与える値もプログラムの内部で代入することができるので
#define定数では実現できなかったことができます
#include <stdio.h>
int main() {
const char str[] = "Kitty on your lap";
printf(str);
return 0;
}
constが指定された変数は、初期値を与えるとそれ以降の変更は許されません
つまり、次のようにするとコンパイル時にエラーが出ます
const int i = 10;
i = 20;
おそらく、「constオブジェクトは変更できない」というようなエラーが出るはずです
定数に値を代入する時とはエラーの内容が違いますね
constは関数などで受け取った値を不用意に変更しないようにするのにも使ったりします
const declaration
変更できないオブジェクトであることを明示します
初期値以降は変更できません