私は最終試験でこれを見つけた:誰かが私の理解を助けることができますか? int型*&PR
int a = 564;
int* pa = &a;
int *& pr = pa;
cout << *pr;
複数の選択肢の答えによると、コードが有効であり、の値を表示します。
しかし、私は3行目の評価と優先順位について混乱しています。*および&の順序は同じです。だから、それはint *(&pr)
でしょうか?どのように言葉で記述することができますか?
ありがとうございます。
私は最終試験でこれを見つけた:誰かが私の理解を助けることができますか? int型*&PR
int a = 564;
int* pa = &a;
int *& pr = pa;
cout << *pr;
複数の選択肢の答えによると、コードが有効であり、の値を表示します。
しかし、私は3行目の評価と優先順位について混乱しています。*および&の順序は同じです。だから、それはint *(&pr)
でしょうか?どのように言葉で記述することができますか?
ありがとうございます。
これはポインタへの参照です。 Cでは、これをポインタへのポインタとして表現します。
// C++ style
void update_my_ptr(int*& ptr) { ptr = new int[1024]; }
// C style
void update_my_ptr_c(int **ptr) { *ptr = malloc(1024 * sizeof(int)); }
int main()
{
int *ptr;
update_my_ptr(ptr);
// Here ptr is allocated!
}
3行目は、ポインタ参照(または、必要に応じてポインタへの参照)を定義します。ポインタに代入するとpr
は実際にpa
へのエイリアスになり、評価するとpa
が指し示す場所、つまりa
が指し示されます。優先順位はここに意味がありませんので、
、*
と&
は、オペレータの意味を持ちません。
ありがとう:
あなたはこのような何かを書くことができます!これは役に立ちました。 – MercurialMadnessMan
3行目は、int
へのポインタの参照(読み取り:エイリアス)を作成します。 pr
を0に設定する場合は、pa
も0になります(逆も同様です)。
興味深い。私はCでポインタへのポインタを使用しています。したがって、この類推は構文を理解するのに非常に便利です。ありがとうございました! – MercurialMadnessMan