作者yauhh (哟)
看板Programming
标题Re: [请益] call by value, call ref, call by name
时间Tue Mar 16 22:57:50 2010
※ 引述《turnoff11 (运动伤害)》之铭言:
: 有一题问call by value, call by ref, call by nmae的值
: 我试写了,想问高手我的答案是正确的吗?
: function confuse(x,y,z)
: {
: x=x+2;
: z=z+y;
: printf(x,y,z);
: }
: main()
: {
: x=1;
: y=2;
: z=3;
: confuse(x,x+y,z);
: printf(x,y,z);
: }
用名字呼叫的意思,是按照呼叫时传入的参数对应,把相同於参数名的变数名
代换成对应的传入参数.
以上例来看,呼叫 confuse(x, x+y, z),意思就是以下三条替换规则:
x ---> x
y ---> x+y
z ---> z
於是代换之後的函数变成:
function confuse (...) {
x = x + 2;
z = z + x+y;
printf(x, x+y, z);
}
接着三个值放进去:
x = 1 y = 2 z = 3
x = x + 2 x == 3 如上 如上
z = z + x+y x == 3 如上 z == 6
printf(x, x+y, z) 印出(3,5,6)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.231.71.128