[585] Re:ポインタ
投稿者:(ぱ)
2007/02/20 02:13:25
>>呼び出し側で、通常の値渡しと同じように現状の値をスタックに積み、
>>関数から戻って来たところで、呼び出し側でコピーを行えばよいのでは。
>そうですそうです。
>なので「コピー先(元)がどこ?」って情報がどこかには必要ですよね。
ええと、C(C++?)風擬似言語で、
void hoge(int &a) ←変数引数の宣言
{
printf("%d", a);
a = 10;
}
int main()
{
int b = 20;
hoge(b);
}
と書いたとき、
(1)通常のCの関数呼び出しと同様、main側で、bをスタックに積む。
(2)よって、hoge()のprintf()では、20が表示される。
(3)hoge()内の「a = 10;」により、引数aに10が設定されて、リターン。
さて、リターンした後ですが、main()側は、aとb両方のアドレスを
知っているわけです。なので、bのアドレスをスタックなどに積む必要は
ないのでは、と言いたかったわけですが。