心魅 - cocoromi -

半角スペース時々全角

真の参照渡し

これを読んで気になって参考文献をおってたけど、今まで参照渡しだと思っていた物は参照渡しっぽい物だった。


AS3では関数の引数はすべて値渡し(call by value)である
http://d.hatena.ne.jp/flashrod/20080127#1201443331


JavaHouse-Brewers の議論を参照
http://java-house.jp/ml/archive/j-h-b/026214.html#body

function hoge(var i){
   i = 1;
}

var a = 0;
hoge(a);
//ここでaが1になれば参照渡し
//0なら値わたし


んでCのこれは参照渡しっぽいけど

#include <stdio.h>

void hoge(int* i ){
  *i = 1;
}

main(){
  int a = 0;
  hoge(&a);
  printf("%d\n",a);
}

参照"値"を渡しているから値渡しというのが正しい。
もちろんJavaのも値渡しになる。