A.1.5 const 定数ポインタを定義する

ポインタについては、“const”の指定場所により、異なる解釈がされます。

【記述例1】

const char *p;

ポインタが示すオブジェクト(*p)を書き換えできないことを示します。

ポインタ自体(p)は書き換え可能です。

したがって、以下のようになり、ポインタ自体はRAM(Bセクション)に配置されます。

*p = 0;/* エラー */

p = 0;/* 正しい */

【記述例2】

char *const p;

ポインタ自体(p)を書き換えできないことを示します。

ポインタが示すオブジェクト(*p)は書き換え可能です。

したがって、以下のようになり、ポインタ自体はROM(Cセクション)に配置されます。

*p = 0;/* 正しい */

p = 0;/* エラー */

【記述例3】

const char *const p;

ポインタ自体(p)、ポインタが示すオブジェクト(*p)を書き換えできないことを示します。

したがって、以下のようになり、ポインタ自体はROM(Cセクション)に配置されます。

*p = 0;/* エラー */

p = 0;/* エラー */