引数の渡し方
関数やメソッドでの引数の渡し方の種類について
以下同じものを指す
前提
以下のような変数を定義したときの、メモリ空間の状態は以下のようになる
「変数x」用に0x8840番地が割り当てられ、そこには「10」が入っている
code:example
x = 10
y = 20
table:memory
メモリの番地 中身
0x8836 . .
0x8840 10 x
0x8844 20 y
0x8848 . .
関数は、呼び出された時に、↑とは別に、関数の仮引数用のメモリ領域が確保される
呼び出し終了時に解放される
code:example
def hoge(a, b):
return a + b
table:memory
メモリの番地 中身
0x9914 . a
0x9918 . b
参考
============================================================================
Javaの参照渡しとC++の参照渡しは指しているものが異なってて混乱したって記事を見たがどうなんだろう
各言語での中身
キーワード
Deep copy
shallow copy
ガベージスラッシング
参照渡し問題
Nim
JS
前の資料
Rust
本