請依下面的程式碼來回答以下的問題:(每小題10 分,共20 分)
下列C 語言程式碼,若使用call-by-reference 呼叫副程式,請問最後印出的a 值
為何?
main()
{
int a=1,b=2;
p(a+b,&a,&a);
printf("%d ",a);
}
int p(int x,int *y,int *z)
{
*y=*y+1;
*z=x+x;
}
若使用call-by-value 呼叫副程式,請問最後印出的a 值為何?
main()
{
int a=1,b=2;
p(a+b,a,a);
printf("%d ",a);
}
int p(int x,int y,int z)
{
y=y+1;
z=x+x;
}