今天偶然从书上看到“形参与实参”
如果运行下面的代码
#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)
原文:https://www.cnblogs.com/FC-001/p/10705102.html