C キャスト 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(キャスト)
(キャスト)
63行: 63行:
 
  pconstnLimit = &nLimit;
 
  pconstnLimit = &nLimit;
  
※上記のconst付きのポインタはポインタのアドレスは変更できるconstで、アドレスは何度でも入れ替えることができます。アドレスが指し示す中身を変更できないようにするものです。
+
※上記のconst付きのポインタはポインタのアドレスは変更できるconstで、アドレスは何度でも入れ替えることができます。アドレスが指し示す中身を変更できないようにするものです。アドレス自体を変更させないconstにする場合は、int* const pconstnLimit = &nLimit; のように *の後ろにconstを付与します。そうすると自分の場合は変数名も constpnLimit としてポインタが定数になったようなプレフィックスを変数名につけたりします。このプレフィックスの法則は面倒なので、長続きしたためしがありませんが(汗。const int* const pconstnLimit = …;とすると中身もアドレスも変更できなくなります(constpconstnLimitになるか…)。値の中身の変更を禁止するconstは 型名の後ろに書くことができますので、int const * const pconstnLimit = …;とも書けます。どちらにしてもあまり見かけない使い方だとは思います。C++の難しさはこのあたりにあると思う。こうやって書いてもいいという曖昧さ。柔軟さ?
 
+
 アドレス自体を変更させないconstにする場合は、int* const pconstnLimit = &nLimit; のように *の後ろにconstを付与します。
+
 
+
 const int* const pconstnLimit = …;とすると中身もアドレスも変更できなくなります。値の中身の変更を禁止するcointは 型名の後ろに書くことができますので、
+
 
+
 int const * const pconstnLimit = …;とも書けます。どちらにしてもあまり見かけない使い方だとは思います。C++の難しさはこのあたりにあると思う。こうやって書いてもいいという曖昧さ。柔軟さ?
+
 
+
  
  

2014年10月20日 (月) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス