对于这个C++程序,我又一些疑问,希望能帮我解读。

疑问1.在main函数中,返回值为0。这个0返回给了谁?如果我返回1或者其它数字会怎样?不返回又会怎样?2.在第十三行中,swap(intx,inty)这一句,既然int... 疑问
1.在main函数中,返回值为0。这个0返回给了谁?如果我返回1或者其
它数字会怎样?不返回又会怎样?
2.在第十三行中,swap(int x,int y)这一句,既然int x和int y都是
形式参数,那么我不写成int x,int y,而写成int q,int w,再把下面
的x和y全部换成q,w行不行?
3.这个程序的执行顺序是先执行main函数,再由swap(x,y);调用swap
函数,再返回main函数,那么最后的go函数还会不会执行?
#include <iostream>
using namespace std;
int main()
{
int x=3,y=8;
cout<<x<<y
swap(x,y);
renturn 0;
cout<<x<<y
}
void swap(int x,int y)
{
cout<<x<<y
int z;
z=x;
x=y;
y=z;
cout<<x<<y
}
void go()
{
cout<<"GoodBye";
}
展开
 我来答
青骢笔记
2011-04-07
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
先回答你的问题吧!
1.现在规范代码,都是int main()不再是以前的void main();不管怎样main()也是一个函数,既然不是void类型就要有返回值;如果执行到return语句时,该函数结束。所以你主函数中return0;后面一句输出是无效的。
至于它是返回给谁,我不清楚。
2.你的说法是可以的
3.在C或者C++ 中都是由主函数开始执行的。由主函数调用swap(int x,int y)然后返回主函数;而go函数是不会执行的。你可以上机执行一下
下面说说我想对你说的,你的程序中有许多的错误之处,首先是漏掉了很多的分号,每个语句结束之后要以分号结尾。不然编译器会报错的,你编译没法通过。还有你的return打错了不是renturn。还有主函数在调用函数swap之前应该先对函数swap进行声明,声明可以这样写void swap(int x,inty);别忘了分号。如果你不想声明的话也可以,但是要将swap函数定义写在main函数之前。main函数结束的时候,也就是这个执行结束了,你后面的go函数想要执行,要在主函数结束之前进行调用,你在swap函数中调用也是可以的。不要认为写了就会得到执行。
附上对你程序的修改:
#include <iostream>
using namespace std;

int main()
{
void swap(int x,int y);
int x=3,y=8;
cout<<x<<y;
swap(x,y);
return 0;//如果想下面一句输出执行,这句移到它的后面
cout<<x<<y;
}
void swap(int x,int y)
{
cout<<x<<y;
int z;
z=x;
x=y;
y=z;
cout<<x<<y;
}
void go()
{
cout<<"GoodBye";
}//如果想要这个函数执行,要在前面声明然后调用!
如果还有什么问题,再和我联系吧! w020950@126.com是我的邮箱地址!
百度网友3ca9489
2011-04-07 · TA获得超过240个赞
知道答主
回答量:36
采纳率:0%
帮助的人:40.8万
展开全部
1.现在规范代码,都是int main()不再是以前的void main();不管怎样main()也是一个函数,既然不是void类型就要有返回值;
2.swap(int x, int y) 这里面的参数是你自己定义的,那个x,y你随便怎么取都可以。
3.go()不执行 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaoyaoyumao55
2011-04-07 · TA获得超过233个赞
知道答主
回答量:81
采纳率:0%
帮助的人:89.9万
展开全部
第一个问题:返回的0是告诉编译器,程序结束。如果你返回1或者其他数字,不会影响函数的结果。
如果你没有返回值,系统会给你提示一个警告,不过系统还是会运行。当你的程序不复杂的时候,可能不会影响。但是程序比较庞大复杂的时候就不好说了

第二个问题:如你所说,既然是形式参数,当然是可以替换。
第三个问题:不会执行。 程序执行的顺序是以主函数为入口,主函数涉及的才会调用,主函数不涉及的,就不会执行。
#include <iostream>
using namespace std;
int main()
{
int x=3,y=8;
cout<<x<<y;
swap(x,y);
return 0;
cout<<x<<y;

}
void swap(int x,int y)
{
cout<<x<<y;
int z;
z=x;
x=y;
y=z;
cout<<x<<y;
}
void go()
{
cout<<"GoodBye";
}

你好多地方都没有加分号,还有return,打错了,我帮你改了一下,用我的调试看看吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
塔利二班
2011-04-07 · TA获得超过1993个赞
知道小有建树答主
回答量:700
采纳率:0%
帮助的人:415万
展开全部
我回答第一个问题吧
返回值是返回给系统的
0和1具体系统做什么只有系统自己知道
对用户而言都一样
对于Main()的返回值问题,其实是很有意义的,因为并不是所有程序都是从Main()开始的,Main()也经常被其他程序调用的。

默认 主程序 返回值 int, 例如:
main(){ return 0; }
和 int main() { return 0; }
完全一样。

void,通常说成无返回值,而不说返回void,而且主程序中没有return语句(也不允许有),却应当用 exit(整数);语句。例如:
void main() { ...; exit(0);}
当然,小程序不写exit这句也不会错,(大程序必须写)。

main函数 返回值 是 返回到操作系统,给这个程序的下一个(系统)程序用,用于传递运行成功或失败等信息。对一般初级和中级程序员来说没啥用。所以不必深究。

从语法来说,返回double, char ... 等数据类型也可以,只要 main 前和后来的 return 处 用的数据类型一致就可以。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
俎静皖9f
2011-04-07 · TA获得超过722个赞
知道小有建树答主
回答量:68
采纳率:100%
帮助的人:103万
展开全部
你生成的 .exe 他会自动运行吗?不会吧,也就是,有什么东东让它运行了,从main开始,那么自然的,返回值,返回给,调用它的;可以是操作系统,也可以是其他的,你学得多了,自然就懂了、、还有就是c/c++已经规定,程序正常结束,返回0,否则返回非0值,它的意义,可能跟系统有关,可能是个错误编号什么的;所以,正常结束,你最好不要return 1,否则就像,你做了件好事,却告诉老师,今天我做了件坏事~~~

第二个问题,肯定的了,我就不多解释了~~

第三个问题,你要清楚,函数main控制这程序的流程,不是说,他后面的所有东西都会执行,main不调用其他函数,他们就在一边呆着而已;调用谁了,谁执行完了,还是要回到main中去的,然后继续main中的代码,知道main结束,向系统返回,over;你应该懂的了,我不多说了~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
happywer2652
2011-04-07
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
main函数可以返回其他值啊,返回0好像是为了调试 不是很清楚!
第二个问题,可以用X,Y,但不用x,y是为了不会搞混,代码一多搞混了很麻烦的啊;
第三个问题,程序从上向下编译,肯定要执行完所有的代码,
ps: 我也是才开始学习,希望可以相互交流交流
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式