
如何理解这段C++代码
#include"../std_lib_facilities.h"voidswap(int,int);intmain(){intx=3,y=4;cout<<"在main函...
#include "../std_lib_facilities.h"
void swap(int ,int );
int main()
{
int x=3,y=4;
cout<<"在main函数中,调用swap函数之前,x的值为:"<<x<<",y 的值为:"<<y<<endl;
swap(x,y);
cout<<"在main函数中,调用swap函数之后,x的值为:"<<x<<",y 的值为:"<<y<<endl;
keep_window_open();
return 0;
}
void swap(int x,int y)
{
cout<<"在swap函数中,调用swap函数之前,x的值为:"<<x<<",y 的值为:"<<y<<endl;
int z;
z=x;
x=y;
y=z;
cout<<"在swap函数中,调用swap函数之后,x的值为:"<<x<<",y 的值为:"<<y<<endl;
}
以上是源代码,如何理解以下三行在源代码中的意思
void swap(int ,int );
swap(x,y)
void swap(int x,int y) 展开
void swap(int ,int );
int main()
{
int x=3,y=4;
cout<<"在main函数中,调用swap函数之前,x的值为:"<<x<<",y 的值为:"<<y<<endl;
swap(x,y);
cout<<"在main函数中,调用swap函数之后,x的值为:"<<x<<",y 的值为:"<<y<<endl;
keep_window_open();
return 0;
}
void swap(int x,int y)
{
cout<<"在swap函数中,调用swap函数之前,x的值为:"<<x<<",y 的值为:"<<y<<endl;
int z;
z=x;
x=y;
y=z;
cout<<"在swap函数中,调用swap函数之后,x的值为:"<<x<<",y 的值为:"<<y<<endl;
}
以上是源代码,如何理解以下三行在源代码中的意思
void swap(int ,int );
swap(x,y)
void swap(int x,int y) 展开
展开全部
运行后的输出结果应该是:在main函数中,调用swap函数之前,x的值为:3,y 的值为4
在swap函数中,调用swap函数之前,x的值为:3,y 的值为4
在swap函数中,调用swap函数之前,x的值为:4,y 的值为3
在main函数中,调用swap函数之前,x的值为:3,y 的值为4
main()函数执行到第一个cout,输出第一句,然后调用swap()函数;
swap()函数先后输出第二,三句;
swap()函数退出,再返回到main()函数继续执行。输出第四句。
swap()函数的参数这样传,好比你新建一个WORD文档NEW,把旧文档OLD里的东西复制进去,然后在新文档NEW里修改,当然,旧文档OLD里的东西还不会变,变的只是新文档NEW的内容。
要想起到作用,就要用引用或者指针,这个建议你好好看看书,书上应该有的,可能不在一个地方列举出来,你要会总结。
在swap函数中,调用swap函数之前,x的值为:3,y 的值为4
在swap函数中,调用swap函数之前,x的值为:4,y 的值为3
在main函数中,调用swap函数之前,x的值为:3,y 的值为4
main()函数执行到第一个cout,输出第一句,然后调用swap()函数;
swap()函数先后输出第二,三句;
swap()函数退出,再返回到main()函数继续执行。输出第四句。
swap()函数的参数这样传,好比你新建一个WORD文档NEW,把旧文档OLD里的东西复制进去,然后在新文档NEW里修改,当然,旧文档OLD里的东西还不会变,变的只是新文档NEW的内容。
要想起到作用,就要用引用或者指针,这个建议你好好看看书,书上应该有的,可能不在一个地方列举出来,你要会总结。
追问
为什么我们俩的顺序不一样?我的顺序错在哪里?
追答
你去设置一下断点,调试跟踪,看看代码是怎么运行的。这个应该很容易理解的:主函数首先输出第一句,然后调用swap(),这时候主函数中swap(x,y);下面的代码就暂停执行了,直到swap()函数执行完毕后才继续执行.调用swap()函数,然后就会输出第二三句,然后到swap()函数结束,退出,然后返回到调用它的函数中,即main()函数中继续执行,也就输出了第四句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void swap(int ,int );//这一段是对swap函数的申明,告诉下面的代码段我有这个函数
swap(x,y)//这是对swap函数的调用
void swap(int x,int y)//这是对swap函数的定义,表示我这个函数是干嘛用的,是如何实现的
swap(x,y)//这是对swap函数的调用
void swap(int x,int y)//这是对swap函数的定义,表示我这个函数是干嘛用的,是如何实现的
更多追问追答
追问
如果源代码运行后,输出四行cout后面的文字,它的顺序是怎样的
是不是
在main函数中,调用swap函数之前,x的值为:3,y 的值为4
在main函数中,调用swap函数之后,x的值为:3,y 的值为4
在swap函数中,调用swap函数之前,x的值为:3,y 的值为4
在swap函数中,调用swap函数之后,x的值为:4,y 的值为3
追答
应该是:
在main函数中,调用swap函数之前,x的值为:3,y 的值为4
在swap函数中,调用swap函数之前,x的值为:3,y 的值为4
在swap函数中,调用swap函数之后,x的值为:4,y 的值为3
在main函数中,调用swap函数之后,x的值为:3,y 的值为4
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、第一个只是声明而已,即声明一个函数,函数名称为swap,有两个参数,类型都是int,没有返回值。
2、第二个是调用,x和y是实参。
3、第三个是函数的定义,和声明遥相呼应。
2、第二个是调用,x和y是实参。
3、第三个是函数的定义,和声明遥相呼应。
追问
如果源代码运行后,输出四行cout后面的文字,它的顺序是怎样的
是不是
在main函数中,调用swap函数之前,x的值为:3,y 的值为4
在main函数中,调用swap函数之后,x的值为:3,y 的值为4
在swap函数中,调用swap函数之前,x的值为:3,y 的值为4
在swap函数中,调用swap函数之后,x的值为:4,y 的值为3
追答
对的。其实你这个swap函数根本就没有起到你想要的效果,想要起到这个效果,都要用引用。
void swap(int &,int &);
void swap(int &x,int &y);
哈哈。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void swap(int ,int ); //声明函数,如果把函数实体放到最前面来,就不需要在此做声明了,意思就是在调用函数之前,函数必须已被声明或定义
swap(x,y) //调用函数
void swap(int x,int y) //定义函数,也就是函数实体
swap(x,y) //调用函数
void swap(int x,int y) //定义函数,也就是函数实体
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
首先是声明函数,因为你的函数体在调用的后面,然后是调用,最后是函数的实现。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询