これは初心者のC++の質問です。次の2つの構成の違いは何ですか?
1. const int* const* const x
2. const int**
これらの構成をどのように読み取るのですか?
これらの構成をどのように読み取るのですか?
それらを逆方向に読み、*
「ポインタ」として読みます。
const int* const* const
整数定数への定数ポインタへの定数ポインタです。
const int**
整数定数へのポインタへのポインタです。
物事を正しい方法でグループ化すると、少し簡単になります。たとえば、は実際には「constポインタ」を意味する1つの単位です(ここで下付き文字として*const
読むことができます:) 。私はそれを次のように書きます:const
*const
const int *const *const p1; // p1 is a const pointer to const pointer to const int
const int **p2; // p2 is a pointer to pointer to const int
また、宣言は、宣言されている識別子から始めて、「裏返し」と読み取られることを忘れないでください。
宣言を解読するのに役立つ/楽しいツールがあります:http://cdecl.ridiculousfish.com/
あなたの場合、それは次のように報告します:
const int* const* const x
=>constintへのconstポインタへのconstポインタとしてxを
const int** x
宣言します=>constintへのポインタへのポインタとしてxを宣言します