产品说明会:c++中的一个小问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/28 08:24:43
# include <iostream.h>
int sum(int x,int y)
{
cout<<"ok!";
return x+y;
}
void main()
{
int s=sum(1,1);
cout<<s<<sum(1,1)<<endl;
}
为什么输出结果为"ok!ok!22" 个人觉得应该是"ok!2ok!2 "? 请详细解释.

int s=sum(1,1);的时候运行sum子函数,但是这个子函数只输出一个ok,没有输出x+y,你看看子函数的输出语句就可以了。

你的疑问应该是为什么cout<<s<<sum(1,1)<<endl;这个句子里面为什么不先输出s的值再输出sum(1,1)吧~因为这个句子要经过整体编译和连接,做cout输出的时候,要把整句都编译后才能输出,而不是遇到一个变量就输出一个。而在编译的过程中突然执行了sum函数,这个时候cout语句还没编译完就执行了这个函数,在执行这个函数的时候又输出了一次ok,这个时候cout语句才编译完成,而后又输出了s的值和sum(1,1)的值

道理就是这样的。有些用词可能不准确,希望批评~

对,听楼上的没错的。

我也想知道答案