C语言 ,急!!!!!!!要详细!!!

#include<stdio.h>func(inta,intb){intcc=a+breturnc}main(){intx=2,y=4,z=6,r;r=func((x--... #include<stdio.h>
func(inta,intb)
{
int c
c=a+b
return c
}
main()
{
int x=2,y=4,z=6,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
展开
 我来答
百度网友9ae2d7ce1
2006-11-13 · TA获得超过271个赞
知道小有建树答主
回答量:494
采纳率:0%
帮助的人:0
展开全部
首先你的函数func(inta,intb) 中的参数要写成func(int a,int b)不要连在一起,函数中的三个语句也没有分号。
主函数中调用func函数的两个实参为"x--,y++,x+y"和z--,"x--,y++,x+y"为逗号表达式,它的值是最后一个表达式x+y的值。变量"x"的值为原来是2,经x--结果现在为1,变量"y"的值原来为4,经y++现在为5,逗号表达式的值为"x+y"的值,也就是6,将值6赋给被调用函数的形参变量"a",即变量"a"的值为6。z--这个参数是将z 的值6先赋给形参变量"b"后,再--为5,形参变量"b"的值为6,所以在func函数中"c"的值为"a+b"的值,等于12。通过return c 将c的值传回调用处,即func()的值为12,也就是r被赋值为12
_KQL_
2006-11-13 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:144万
展开全部
12

(x--,y++,x+y)表达式返回最右边的值
x--,y++后x=1,y=5,x+y = 6;

z--表示先返回z,然后z自减1

那么就是r=func(6,6);r=12;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q5331006
2006-11-23 · TA获得超过496个赞
知道小有建树答主
回答量:618
采纳率:0%
帮助的人:515万
展开全部
答案 12
讲解如下:
r=func((x--,y++,x+y),z--);中(x--,y++,x+y)是一个逗号表达式,值为最后一个表达式的值。这里x--后x=1,y++后y=5,所以(x--,y++,x+y)的值就是x+y,等于1+5=6。
所以r=func((x--,y++,x+y),z--);即为r=func(6,z--);
而z--是先运算后,z才减1,所以r=6+6=12.
讲得不太好,希望明白!~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
幽幽之木
2006-11-13 · TA获得超过135个赞
知道小有建树答主
回答量:131
采纳率:0%
帮助的人:188万
展开全部
执行"x--,y++,x+y"逗号表达式后,变量"x"的值为1,变量"y"的值为5,逗号表达式的值为表达式"x+y"的值,即6!将值6赋给被调用函数的形参变量"a",即变量"a"的值为6。主函数中,变量"z"将值6赋给被调用函数的形参变量"b"后,变量"z"为5,形参变量"b"的值为6,最后变量"c"的值为"a+b"的值,等于12
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ea0637cd1
2006-11-13 · 超过13用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:40.2万
展开全部
#include<stdio.h>
func(int a,int b) //空格
{
int c ; //分号
c=a+b; //分号
return c ;//分号
}
main()
{
int x=2,y=4,z=6,r;
r=func((x--,y++,x+y),z--);
printf("%d\n",r);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
建站解说
2006-11-13 · 超过26用户采纳过TA的回答
知道答主
回答量:292
采纳率:0%
帮助的人:88.7万
展开全部
what
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式