C++交换两个数的值代码

C++交换两个数的值代码#include<iostream>usingnamespacestd;voidswap(int*a,int*b){intc;c=*a;*a=*b... C++交换两个数的值代码
#include <iostream>
using namespace std;

void swap(int *a,int *b)
{
int c;
c=*a;
*a=*b;
*b=c;
}
//引用的基本概念

int main()
{
int x,y;
x=10;
y=20;

swap(&x,&y); //此处修改为swap(x,y);,运行结果一样

cout<<"x="<<x<<endl<<"y="<<y<<endl<<endl;

system("pause");
return 0;
}

用VS2010编译,swap(&x,&y);这句是把xy的地址赋值给指针变量ab是吧,这点没问题,但是,修改一下 swap(x,y) 去掉取地址符号,编译也是没问题的,这个为什么呢?
int 型变量赋值给指针变量是怎么转换呢
谢谢
展开
 我来答
金色潜鸟
2018-03-04 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5734万
展开全部
猜测,可能是:
swap(&x,&y);这句 调用你写的函数。
swap(x,y);这句 调用系统里的同名函数。
你可以在你写的函数里加一句 cout << "My function" <<endl;
调用 swap(x,y); 将不会显示 "My function"。
调用 swap(&x,&y); 会显示 "My function"。
c++ 允许定义同名而参数不同的函数。swap(x,y); 是参数引用。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式