値渡し参照渡し
今回は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言語では どのようになっているか、気になりませんか。 さてさて、調べてみることにしましょう |