急,C++问题
答案:3 悬赏:20 手机版
解决时间 2021-04-16 19:20
- 提问者网友:蓝莓格格巫
- 2021-04-16 01:27
#include [br/] using namespace std;[br/] func(int a,int b)[br/]{int c;[br/] c=a*b;[br/] return (c);[br/] }[br/]int main()[br/]{int x=6,y=7,z=8,r;[br/] r=func((x--,y,x*y),z--);[br/] cout<<r;[br/] return 0;}结果为多少,请简述过程
最佳答案
- 五星知识达人网友:逐風
- 2021-04-16 03:02
看上面的情况,你看不明白的应该就是r=func((x--,y,x*y),z--);这一句吧,其中func()一共接收了两个参数,分别是(x--,y,x*y)和z--,(x--,y,x*y)在这里是一个表达式,可以得到一个值,它里面的三个表达式是用逗号分隔的,所以按从左向右的顺序来看,先是x--,在此x变为5,y处没有数据变化,最后是x*y,得到35,这个数处于此表达式的最右边,所以它的值就代表了整个表达式的值,即(x--,y,x*y)的值为35,另一个参数是z--,但因为是z--而不是--z,所以是先使用后自减,就是说要先把z的当前值8作为参数传给func()所以自定义函数收到的两个参数分别是35和8,返回它们和积,当然就是280了
全部回答
- 1楼网友:持酒劝斜阳
- 2021-04-16 04:25
程序没错,主函数通过func((x--,y,x*y),z--)调用函数,首先第一个参数是逗号表达示值(x--(值为5),y,x*y(逗号表达示最后一式的值为表达示值))为35,在又z--为先引用后自减,主函数传两实参func(35,8)
- 2楼网友:愁杀梦里人
- 2021-04-16 03:31
结果是发生错误,参数传递有缺失,你定义了func(int a,int b)却在main函数那里传递了x--,y和x*y共三个参数,所以错误
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯