作业帮 > 综合 > 作业

C++习题求解释,最后输出a,b,c,d的值看不懂

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 22:34:29
C++习题求解释,最后输出a,b,c,d的值看不懂
#include "iostream.h"
int func1(int a,int b);
int func1(int a);
float func1(float a,int b=3);
void func2(int &x,int y);
int main()
{
int a=1,b=2,c=3;
float d=6.0;
b=func1(func1(a,b));//func1(a,b)=0,func1(0)=0,即b=0
d=func1(d);//func1(d)=func1(d,3)=2,即d=2
func2(a,c);//func2(a,c)的运行效果为a=c=3
cout
C++习题求解释,最后输出a,b,c,d的值看不懂
你的第三个func1函数的定义写错了吧,应该是float func1(float a,int b=3)才行,不然编译通不过的.
b=func1(func1(a,b));先调用第1个func1函数,返回a==b的值,因为a=1,b=2,不相等,所以返回值是0,再把0作为参数传给第2个func1函数,返回值是0.
d=func1(d); d是float型,所以第2个func1函数无法匹配,只有第3个func1函数,第二个参数使用默认值,可以匹配这个调用.所以调用的是第3个func1函数,func1(d,3)=6/3=2
func2(a,c);调用func2,注意这里第一个参数用的是引用传递,所以函数调用结束后,第一个参数的值会变成第二个参数的值,所以a变成3