金曜日, 8月 02, 2013

constの使い方

面接をしていて感じたのが,意外にconstの使い方をわかっていない又は誤って理解しているケースも多いということである.

constの正しい用法はcode as documentationとして重要なのでしっかり理解しておきたいところ.

int i = 500;
// 1. 
const int* pVal = &i;
// 2.
int* const pVal = &i;
// 3.
const int* const pVal = &i;

1はconst修飾子が適用されたint型,つまり定数intを指すポインタである.
ゆえにポインタを経由してpValの値を変更することはコンパイラが許可しないが,pVal自体別のconst int型を指し示すことはできる.

2はint型を示すconst修飾子が適用されたポインタ,言い換えるとそのポインタの持つ値,つまりはアドレスの変更が不可能なポインタである.ポインタ経由でiの値を変更することは認めるが,i意外の変数を指し示すことは許さない.

3は定数int型を示す定数ポインタである.ポインタ経由での値の変更も許されなければ,またポインタの指す値を変えることも出来ない.




0 件のコメント: