0

ポインターの利点を理解しようとしています。定義と作成方法は知っていますが、なぜそれらが強力なのかはまだわかりません。

  • 誰かがポインタでしかできないことの例を教えてください。
  • Python にはポインターがないと聞きましたが、これは Python を使用して実行できない操作があることを意味しますか? つまり、特定のメモリの場所と値にアクセスするだけでなく、プログラミングに関して言えば? 例?
4

1 に答える 1

0

ポインターは、主に参照セマンティクスを実装するメカニズムです。別の場所に存在する既存のオブジェクトを参照したい場合は、そのオブジェクトへのポインターを渡すことで参照できます。

ポインターがなければ、オブジェクトのコピーしか渡すことができませんでした。これにより、値をやり取りできますが、既存のオブジェクト変更することはできませんでした。(もちろん、C++ のように、言語がネイティブ参照処理を提供していない限り。)

テストとして、次のコードをどのように実装するか想像してみてください。

var a = 10;
var b = 20;

my_magic_swap(a, b);  // how to do this?!

assert(a == 20 && b == 10);

(もちろん、元の変数へのポインター(または同等のもの) をmy_magic_swap受け入れる必要があるというのが答えです。)

于 2012-11-10T18:26:35.823 に答える