菅野です。こんにちは。

yas@is.tsukuba.ac.jp (Yasushi Shinjo) wrote:

> 新城@筑波大学情報です。こんにちは。
> const は、自分のプログラムでは使わないけれど、
> 
> In article <IRtmf.5$r61.1@news3.dion.ne.jp>
>    wvn <wvnveowije@yahoo.co.jp> writes:
> > 典型的な例として
> > void foo(const char * const a)
> > {
> >     ...
> >     a = b;  // error.
> >     ...
> >     a[2] = '\0'  // error.
> > }
> > // error.
> > の部分がコンパイル時にチェックできるものがありますが、
> 
> これ、どちらか一方は OK かと思ってました。両方ダメでもいいけ
> ど、片方だけ OK にしたい時にはどうやって書くのですか?
> 

const char * a
であれば
a[2] = '\0';
のような代入が不可で
char * const a
ならば
a = b;とか++a;
などが不可能になります。

--
菅野