C语言,请详细解释一下,谢谢啦!

[复制链接]
查看11 | 回复4 | 2011-3-2 20:37:42 | 显示全部楼层 |阅读模式
func(int a,int b)
{
int c;
c=a+b;
return c;
}
main()
{
int x=6,y=7,z=8,r;
r=func((x--,y++,x+y),z--);
printf("z=%d,r=%d\n",z,r);
}

回复

使用道具 举报

千问 | 2011-3-2 20:37:42 | 显示全部楼层
int func(int a,int b)//注意此行,应该有个 int,最前边,表示这个函数的返回值的类型。{ int c;c=a+b;//定义变量c,用来存储a+b的结果return c;//将运算结果返回}int main()//此处推荐采用标准写法:main函数返回整数型{ int x=6,y=7,z=8,r; r=func((x--,y++,x+y),z--);//我猜你可能此处不明白。/*r=func();表示调用func函数。根据上边的声明,func有两个int型的参数。先看第一个参数:(x--,y++,x+y)这是一个表达式,对于表达式的取值是这么规定的:从左向右,
回复

使用道具 举报

千问 | 2011-3-2 20:37:42 | 显示全部楼层
(x--,y++,x+y)算x+y的
回复

使用道具 举报

千问 | 2011-3-2 20:37:42 | 显示全部楼层
((x--,y++,x+y),应该是x,y分别自减、自增完再执行x+y,所以是5+8
回复

使用道具 举报

千问 | 2011-3-2 20:37:42 | 显示全部楼层
貌似不是 应该是 先执行x+y然后执行x++和y++
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行