ページ 11

constについて

Posted: 2012年8月29日(水) 13:38
by 泣き虫太郎
constを使うときにおいて、ポインタが絡んでくるとよくわからないので投稿さしていただきました。
たとえばconst int *temp;   これは、tempに入ってるアドレスに対して代入禁止にしてるのか、はたまたtempがさしてるオブジェクトに対して代入禁止にしてるのか、どちらなのでしょうか?また、int * const temp; これは、tempに入ってるアドレスに対して代入禁止にしているのでしょうか?

Re: constについて

Posted: 2012年8月29日(水) 14:10
by beatle
代入するようなプログラムを書いてみれば分かることではないですか?
実験こそが上達の道です!

答えを書きますが、
const int *temp は *temp = 0; が禁止されます。 temp = &hoge; は可能です。
int * const temp は temp = &hoge; が禁止されます。 *temp = 0; は可能です。

Re: constについて

Posted: 2012年8月29日(水) 14:51
by 泣き虫太郎
実際に実験したらおっしゃられた通りになりました。人に聞く前に自分で実験することも大切ですね^^。これからはわからないことがあったらまず実験することにしますw。回答ありでした!