- 値ではなく参照でintを渡すことでパフォーマンス上の利点がありますか?あなたが参照渡しする場合は4バイトのポインタを作成していますが、値渡しの場合は値の4バイトコピーを作成しているので、これを言います。だから両方とも余分な4バイトを占めていますよね?
キャストを使用してintリテラルを参照渡しすることはできますか?(int *)?または、intへのポインタを渡す必要がありますか?すなわち、その中に値を返し、通過ごとのポインタ(Cで参照がない)の利点は、機能が元
int
を更新することができるということである参照渡しと値渡しによるintの受け渡しの利点はありますか?int func1(int *a){ (*a)++; // edited from comment by Joachim Pileborg printf("%i\n", *a); return 0; } int func2(int a){ a++; printf("%i\n", a); return 0; } int main(void){ func1(&(int *)5); // an int literal passed by reference using a cast ? func2(5); return 0; }
3
A
答えて
8
:以下のコード例を参照してください。パフォーマンス上の利点はありません。ポインタが渡されるのは、指し示されているint
がアドレス指定可能なメモリになければならないため、プログラムを遅くする可能性があるため、レジスタに入れることはできません。
&(int *)5
は、あなたが思う通りではありません。 (int *)5
は、値5
をポインタにキャストし、メモリアドレスとして解釈します。 &
はそのポインタのアドレスを与えますが、一時アドレスを取ることは違法です。おそらく意味します。
int i = 5;
func1(&i);
関連する問題
- 1. 値渡し値渡し参照渡し
- 2. 値渡しと参照渡しJavaScriptで
- 3. 参照渡しと値渡し。 C++
- 4. 参照渡しと値渡し
- 5. 参照渡しと参照渡し
- 6. 参照とマルチスレッドによるオブジェクトの受け渡し
- 7. Pythonでの参照と値の受け渡し
- 8. JavaおよびC++は値渡しで参照渡しする
- 9. shared_ptrへの参照渡しの利点は、直接参照を渡すことです。
- 10. JavaScriptでの参照による変数の受け渡し
- 11. Cでの参照によるポインタ引数の受け渡し?
- 12. WebワーカーによるjQuery参照の受け渡し
- 13. 参照によるカスタムプライオリティキューの受け渡し
- 14. AS3での参照による受け渡し
- 15. 参照によるJavaScript変数の受け渡し
- 16. 定数値と定数参照によるベクトルの受け渡し
- 17. 関数への参照としてのベクトルの受け渡し
- 18. pthreadの参照渡し値
- 19. Javaは値渡しか参照渡しですか?
- 20. C++不変のカスタムクラスが参照渡しまたは値渡し
- 21. 値渡しとAndroidアダプタの参照渡し?
- 22. 値渡しと参照渡しの違い
- 23. C#の中括弧で値渡しと参照渡し
- 24. 参照オブジェクトによって渡された変数への参照オブジェクトの受け渡し
- 25. PHP:参照の割り当て、受け渡し、返却
- 26. python - 値渡しまたは参照渡し
- 27. python numpyとメモリ効率(参照渡しと値渡し)
- 28. 参照渡しとC++とJavaで値渡し
- 29. React - ダムコンポーネント(子)からスマートコンポーネント(親)への参照の受け渡し
- 30. 関数内の参照またはポインタとしてのオブジェクトの受け渡し
式 '* a ++'は、_pointer_を増やします。値を大きくしたい場合は '(* a)++'を使う必要があります。 –
私はそれもコンパイルすると信じられない。 intリテラルのアドレスは取ることができません。 – JeremyP