今天偶然从书上看到“形参与实参”

如果运行下面的代码

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
#include<iostream>

using namespace std;

void swap(int a,int b){

    int t=a;

    a=b;

    b=t;

}

int mian(){

    int x,y;

    swap(x,y);

    cout<<x<<y;

    return 0;

} 

最后是得不到交换的

因为a与b只是x与y的副本

a与b的交换并不会导致x与y的交换

就相当于a与b复制了x与y,但a与b做改动是不会影响x与y的

同时,形参与实参也是有许多不同的

实参一定要有一个确定的量

而形参的量是由它复制的实参的量决定的

所以怎么办才可以让x与y交换呢

1.全局变量

#include<iostream>

using namespace std;

void swap(){

    int t=x;

    x=y;

    y=t;

}

int mian(){

    swap();

    cout<<x<<y;

    return 0;

}     

2.加上“&”

#include<iostream>

using namespace std;

void swap(int &a,int &b){

    int t=a;

    a=b;

    b=t;

}

int mian(){

    int x,y;

    swap(x,y);

    cout<<x<<y;

    return 0;

}

这个值得提一下,在a与b前加上&,就相当于说a与b就是x与y的小名啦

既然只是名字不同那一个变另一个不也变吗

3.我脑子疯啦™用什么函数

#include<iostream>

using namespace std;

int mian(){

    int x,y;

    int t=x;

    x=y;

    y=t;

    cout<<x<<y;

    return 0;

}    

(其实我理解的也不是很透彻啦,所以有bug欢迎回复QWQ)

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄