一道c语言题,麻烦解释下,谢谢;
#definef(x,y)y=x*xvoidg(intx,inty){y=x*x;}voidmain(){inta=2,b=0,c=2,d=0;f(a,b);g(c,d)...
#define f(x,y) y=x*x
void g(int x,int y)
{ y=x*x; }
void main()
{ int a=2,b=0,c=2,d=0;
f(a,b);
g(c,d);
printf("%d\n%d",b,d);
为什么不是输出2个4? 展开
void g(int x,int y)
{ y=x*x; }
void main()
{ int a=2,b=0,c=2,d=0;
f(a,b);
g(c,d);
printf("%d\n%d",b,d);
为什么不是输出2个4? 展开
1个回答
展开全部
#define f(x,y) y=x*x
void g(int x,int &y)
{ y=x*x; }
void main()
{ int a=2,b=0,c=2,d=0;
f(a,b);
g(c,d);
printf("%d\n%d",b,d);
system("pause");
}这样就行了,你传进去的是形参,只是d的一个副本所以是不会改变d实际的值的
void g(int x,int &y)
{ y=x*x; }
void main()
{ int a=2,b=0,c=2,d=0;
f(a,b);
g(c,d);
printf("%d\n%d",b,d);
system("pause");
}这样就行了,你传进去的是形参,只是d的一个副本所以是不会改变d实际的值的
追问
程序运行时输出到屏幕的结果中第一行是( 4) ,第二行是为什么是0而不是4了?麻烦详细的说说,。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询