サンプルプログラム fix.c
(7-4)固定値を持つ変数
グローバル変数でもローカル変数でも固定値を持つ変数を宣言することもできます。 宣言の仕方は初期値を持つ変数とほぼ同じですが、constを付けます。 constを付けますと書き換えできない固定値として扱われ、もし代入しようとするとエラーになります。
#includeint const s = 1; int const arr[3] = { 1, 2, 3 }; char * const str = "Hello World"; void main( void ) { int i; printf( "s = %d\n", s ); for( i = 0; i < 3; i++ ) { printf( "arr[%d] = %d\n", i, arr[i] ); } printf( "%s\n", str ); /* 以下の行を有効にしますとエラーが出てコンパイルできません。 * いずれの変数も読み出しだけで書き込みできない(固定値の)変数であることが * 確認できると思います。 */ // s = 2; // arr[1] = 0; // str = "error"; }
上記プログラムの実行結果は、
s = 1 arr[0] = 1 arr[1] = 2 arr[2] = 3 Hello World
となります。
なお、補足ですがconstは変数名の直前に書く方が良いようです。
...と言いますか、constを書く位置によってコンパイラの解釈が異なってくることがあるようです。