4

constポインタ間の変換について説明しているC++Gotchasという本を読んでいて、次のルールを理解するのに問題があります。

タイプTと整数n>0が存在する場合、2つのポインタタイプT1とT2は類似しており、次のようになります。

T1はcv1、0はcvへのポインタ、1は。へのポインタです。。。cv 1、n-1 cv 1、 nTへのポインタ

と、

T2は、 cv2,0からcv2,1へポインタです。。。cv 2、n-1 cv 2、 nTへのポインタ

ここで、各cvi、jは、const、volatile、const volatile、または何もありません。

誰かが私に説明を得ることができる正しい方向に私を向けることができますか、または上記の各シーケンスでcv1,0cv1,1が何を意味するかを知っている人はいますか?その本は私がそれを理解するのに十分助けていない。しかし、これはC++言語と関係があると確信しています。

4

1 に答える 1

4

cv i,j2 *(n + 1)プレースホルダーのコレクションを表します。

iwith1 <= i <= 2とwithwithの組み合わせごとj0 <= j <= n、プレースホルダーcv i,jは3つの指定子の1つを表すconst,volatile, const volatlieか、何も表しません。

言い換えれば、本の抜粋は、これらのプレースホルダーとタイプTが2つのステートメント(「T1は..」)が満たされるように見つかった場合、「類似」と呼ばれるT1ことを意味します。T2

たとえば、T1 = const int*T2 = int*は似ています。これは、抜粋の2つのステートメントを、次のいずれかを選択した場合に満たすためです。

  • T = intn = 1
  • cv1,0= {nothing}cv1,1 = const
  • cv2,0={nothing}cv2,1 = {nothing}

これを確認するには、プレースホルダーを挿入するだけです。

const int*へのポインタですconst int

int*へのポインタですint

于 2011-12-21T05:34:27.350 に答える