ポインターの利点を理解しようとしています。定義と作成方法は知っていますが、なぜそれらが強力なのかはまだわかりません。
- 誰かがポインタでしかできないことの例を教えてください。
- Python にはポインターがないと聞きましたが、これは Python を使用して実行できない操作があることを意味しますか? つまり、特定のメモリの場所と値にアクセスするだけでなく、プログラミングに関して言えば? 例?
ポインターの利点を理解しようとしています。定義と作成方法は知っていますが、なぜそれらが強力なのかはまだわかりません。
ポインターは、主に参照セマンティクスを実装するメカニズムです。別の場所に存在する既存のオブジェクトを参照したい場合は、そのオブジェクトへのポインターを渡すことで参照できます。
ポインターがなければ、オブジェクトのコピーしか渡すことができませんでした。これにより、値をやり取りできますが、既存のオブジェクトを変更することはできませんでした。(もちろん、C++ のように、言語がネイティブ参照処理を提供していない限り。)
テストとして、次のコードをどのように実装するか想像してみてください。
var a = 10;
var b = 20;
my_magic_swap(a, b); // how to do this?!
assert(a == 20 && b == 10);
(もちろん、元の変数へのポインター(または同等のもの) をmy_magic_swap
受け入れる必要があるというのが答えです。)