参照渡しで値を渡します
3333 ワード
おはよう!値によるパスの違いは何ですか?パラメータを持つ関数がある場合、以下のコード(言語C )のようにパラメータを呼び出します.
今すぐ参照で呼び出しを見てみましょう.ここでも4つの記憶場所が必要ですが、重要な違いがあります.
https://youtu.be/HEiPxjVR8CU
良い一日を.😊
int fun(int x, int y)
{
x=1;
y=2;
}
int x=3, y=4;
fun(x,y);
printf(“x=%d,y=%d, x,y);
まずcall by valueを考えます.このコードでは、パラメータxとyの値は別のメモリ位置に格納され、格納されます.x=1
x=3
y=2
y=4
関数funl ()が行われた場合、ローカル変数x = 1とy = 2はメモリから削除されますので、xとyを現在印刷するとき、3と4が表示されます.今すぐ参照で呼び出しを見てみましょう.ここでも4つの記憶場所が必要ですが、重要な違いがあります.
int fun(int *p1, int *p2)
{
*p1=1;
*p2=2;
}
int x=3, y=4;
fun(&x,&y);
ここでは“&”で、x = 3とy = 4のメモリドレスを関数に渡します.つまり、funper ()関数のポインタポインタがadressを格納していることを意味し、自分のメモリで値を受け取ることはできません.そのような例は次のようになります.p1=1000 //memory address of x
p2=2000 // memory address of y
funp ()関数の中で* pを書きます.* p 1 = 1でxの値にアクセスしたいので、xの値を1に変更し、* p 2 = 2でYの値を2に変更します.**はDereference演算子とも呼ばれます.あなたが私の説明でより多くの映像を望むならば、このビデオをチェックしてください:https://youtu.be/HEiPxjVR8CU
良い一日を.😊
Reference
この問題について(参照渡しで値を渡します), 我々は、より多くの情報をここで見つけました https://dev.to/anja/pass-by-value-vs-pass-by-reference-2477テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol