几个基础问题..

来源:百度知道 编辑:UC知道 时间:2024/06/13 23:06:47
#include<iostream.h>
f(int c)
{
c++;
cout<<c<<endl;
return c;
}
g(int d)
{
d++;
cout<<d<<" "<<f(d)<<endl;
return d;
}
main()
{
int a=1, b=11;
f(a);
g(b);
cout<<a<<'\n'<<b<<endl;
return 0;
}
结果为
2
13(??)
12 13
1
11
第二行的13为什么显示?
如果我把f(int c)该成void则g(int d)中的f(d)会报错 外面的f(a)却正常又为什么
如果我把return d;换成renturn 0;则g(b)显示为(12 0)此处为什么为0呢
3个问题请多指教

1、cout<<d<<" "<<f(d)<<endl; 中的f(d)的cout<<c<<endl;输出了这一行13。
因为函数参数是自右向左传入的,所以先输出了13,然后f(d)return c; 返回了13供cout<<d<<" "<<f(d)<<endl;再一次输出13。

2、如果f(d)改为void,则<<f(d)的<<就没有参数传入了,淡然报错。

3、return c; 换成renturn 0则输出12,0因为,第二个数就是输出的这个return传出来的数。
而return d;换成renturn 0则不可能输出0。

4、你对于函数返回值还不是很理解,需要认真看看!