一道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?
展开
 我来答
百度网友215cb36
2011-10-14 · 超过65用户采纳过TA的回答
知道小有建树答主
回答量:152
采纳率:0%
帮助的人:177万
展开全部
#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实际的值的
追问
程序运行时输出到屏幕的结果中第一行是( 4)  ,第二行是为什么是0而不是4了?麻烦详细的说说,。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式