値渡し参照渡し
今回はD言語の値渡しと参照渡しをもう一度確認して見ましょう。ところで
"値渡し、参照渡し"、ってなにかごぞんじですか? んー、すこし説明
することにしましょう。渡しの知人の中には、C言語の
ポインターがわからなくなるのはこのあたりに原因の方が
けっこういるのです。 void main(char [][]args) { int kyoro = 0; int hiro = kyoro; hiro += 1; printf("%d",kyoro); }この結果は 0 となります。これはkyoroからhiroへ値渡しされた例です。 では、次に参照渡しの例をあげてみます。 void main(char [][]args) { int kyoro = 0; int* hiro = &kyoro; *hiro = 1; printf("%d",kyoro); }この結果は1を返します。これは kyoroからhiroへ参照渡しを行っているため、hiroを書きかえることで kyoroの値もかわってしまいます。 さて、値渡しと参照渡しの違いはわかりましたか。 ****************************** C++やC言語では配列以外はクラスも含めてすべて値渡しでした、参照渡しをするために ポインターをつかっいたんですね。それではD言語では どのようになっているか、気になりませんか。 さてさて、調べてみることにしましょう |