4

次のプログラムのポイントを誰か説明してくれませんか int * const * var; の意味を理解するために私が書いた次のプログラム。

#include "iostream"

using namespace std ;

int main(){

int a = 2;

int  * const   x = &a;
int * const * p = &x;

cout << **p;
return 0;
}

このプログラムの出力は 2 です。

私の関心事は、p が int への定数ポインタへのポインタであり、これをどのように使用しているかということですが、ポインタを格納するにはポインタへのポインタが必要であることを常に研究していました。このプログラムはどのように機能していますか。使うべきじゃなかった

int * const **P

これは、 P が何らかのポインタのアドレスを含む可能性があることを意味するためです。

私のコードが機能する理由がわかりません:)

4

4 に答える 4

7
  1. int * constは "constへのポインタint" です。
  2. int * const *「へのポインタへのconstポインタint」です。

タイプ 2ポインターへのポインターです。より具体的には、ポインターへのconstポインターです。x( )を指すポインタは であるため、これはすばらしいことですconst。はタイプ 1 であるためx、そのアドレスを取得すると、タイプ 2 のポインターが得られます。

int * const **「ポインタへのポインタへのポインタへのconstポインタint」になります。「ポインター」がいくつあるか数えます。三!実際、pwithのアドレスを取得すると、これが得られます&p

于 2013-05-23T18:08:44.523 に答える
2
  • ポインタを格納するには、ポインタへのポインタが必要です

constどうやら、ポインターはどういうわけかポインターではないと思います。あなたは間違っている。const不変性の単なる指標です。したがって、ポインターへのconstポインターポインターへのポインターです

于 2013-05-23T18:45:39.383 に答える
0

xはタイプであり、タイプ some でint* constあると仮定します。へのポインタは次のように宣言されますxABCxABC *p=&x;

これはと同等ですint* const *p=&x;

于 2014-12-29T08:26:35.043 に答える