为了账号安全,请及时绑定邮箱和手机立即绑定

这三种有写法是不是等价

#include<iostream>

#include<stdio.h>

using namespace std;

void  fun1(int a ,int b )

{

cout<<a<<b;

int c ;

c = a ;

a = b;

b = c;

cout<<a<<b;

}

//引用 

void fun2(int &a, int &b)

{

cout<<a<<b;

int c ;

c = a ;

a = b;

b = c;

cout<<a<<b;

}

//指针 

void fun(int *a ,int *b)

{

cout<< *a<< *b;

int c;

c = *a;

*a = *b;

*b=c;

cout<< *a<< *b;

}

int main(){

   int  x =1 ,y =2;

   //fun1(x,y);

   //fun2(x,y);

   fun(&x,&y);

}



正在回答

2 回答

第一个跟后面两个不同,第一个实参赋值给形参,形参的改变不影响实参

0 回复 有任何疑惑可以回复我~

效果是一样的,但是如果你三个函数每个都加上一句cout<<"x的值为:"<<x<<","<<"y的值为:"<<y<<endl;这样你就知道哪里不一样了

0 回复 有任何疑惑可以回复我~
#1

weixin_慕后端7192974

不懂啊,咋回事
2019-02-25 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

这三种有写法是不是等价

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信