4

通常、C++ では次のように変数を宣言します。

int exampleInteger;

整数のアドレスへのポインターがある場合はどうなりますか? 特定のメモリ アドレスにある整数を宣言できますか?

int* exampleIntegerPtr = (int*) 0x457FB;
int exampleInteger = *exampleIntegerPtr;

残念ながら、2 番目の例の exampleInteger は、最初の例の exampleInteger とは異なります。2 番目の例では、exampleIntegerPtr にある整数と同じ値を持つ新しい変数を作成します。exampleIntegerPtr にある実際の整数を何らかの方法で取得することは可能ですか?

4

2 に答える 2

1

dasblinkenlightが言ったように、参照を使用して目的を達成できます。これに 1 つ追加します。C++ を使用しているため、キャストよりもreinterpret_castを優先する必要C styleがあります。これは、意図を明確にし、キャストを見つけやすく、目立つようにするためです。この前のスレッドで詳しく説明します。コードは次のようになります。

int* exampleIntegerPtr = reinterpret_cast<int*>(0x457FB);
int &exampleInteger = *exampleIntegerPtr;
于 2013-06-08T02:30:43.023 に答える