問題タブ [pass-by-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
41274 参照

c++ - 値渡しと参照渡しまたはポインタ渡しのパフォーマンス コストは?

fooオブジェクト( an int、 a double、 custom struct、 aなど) を考えてみましょうclass。私の理解ではfoo、関数への参照渡し (または へのポインターを渡すだけfoo) は、ローカル コピーの作成を回避するため (大きい場合はコストがかかる可能性があります)、パフォーマンスが向上しますfoo

ただし、ここでの回答から、何が指されているかに関係なく、64ビットシステムのポインターは実際には8バイトのサイズを持つことが期待できるようです。私のシステムでは、afloatは 4 バイトです。それは、 iffooが type の場合、ポインタを渡すよりも値で渡す方が効率的であることを意味しますか (関数内で一方を他方よりも効率的に使用する他の制約がないことを前提としています)?floatfoo

0 投票する
2 に答える
77 参照

objective-c - オブジェクトを渡すときのデータ損失

私はオブジェクトを持っています

このオブジェクトにデータを入力すると、それが成功し、すべてのプロパティが完全かつ正しく初期化されることがわかります。

ただし、このオブジェクトを次のように渡すと:

*これは別のクラスです (上記で定義した NSObject にはありません)。

question.nextQuestionquestion.previousQuestionですnil

このオブジェクトを渡すと、後続のオブジェクト (nextQuestion と previousQuestion) が nil になるのはなぜですか? オブジェクトが深いコピーではなく浅いコピーを行っているようですが、確かではありません。

私が知らない根本的な何かがあるようです。

0 投票する
3 に答える
174 参照

c++ - std::atomic_fetch が入力パラメーターとしてポインターを取るのはなぜですか

std::atomic_fetch_xxx (or, and, add, sub, xor)の自由関数のセットは、std::atomic<T>*名前付きの objを入力として受け取ります。


質問: std::atomic 型がポインターとして解釈され、代わりに参照として渡されないのはなぜですか。

実用的な合理性/理由はありますか、それとも単に文体的なものですか?