0

並べ替えについて説明しているサイトから入手しました。しかし、私は理解できませんでし*(int*)xた。Cプログラムでこのように使用された場合、変数xを読み取る方法は? xのポインタへのポインタですか、それとも違いますか? どんな助けでも大歓迎です。ありがとう!

4

4 に答える 4

3

最初に分割すると、そこに到達できます。

(int*)x

これは、へのポインタにキャストxします。この場合、は であると仮定するため、 の数値はポインターとして解釈されます。int*intxintx

次のステップでは:

*(int*)x

*ポインターを逆参照します。この場合は、キャストされたばかりintです。結果はint.

つまり、 an をポインターとして解釈し、intそれが指す値を取得します。

于 2012-05-28T07:51:23.307 に答える
0

x最初に整数ポインターにキャストしてから、それを逆参照します。

于 2012-05-28T07:50:13.183 に答える
0

*C では次のように考えることができます。

  • 型 (例: ) では、ポインターintを意味します
  • 値 (例: ) を使用すると、逆参照xを意味します

そう:

  • (int*)xへのポインタですint
  • *yが指すメモリ アドレスの値です。y
于 2012-05-28T07:52:38.743 に答える
0

説明が異なる他の人と同じ答え。これを解釈してみてください - int* ptr = (int*)x; int y = *ptr;

于 2012-05-28T07:53:52.563 に答える