为什么都学到C++了还是写这?因为我刚刚明白了一点东西
首先来个函数和调用
//传值
//按照值的方式传参,将来编译器会生成实参的拷贝
void Swap(int left,int right) {
cout << &left << ' ' << &right << ' ' << endl;
int temp = left;
left = right;
right = temp;
}
int main() {
int a = 10;
int b = 20;
cout << &a << ' ' << &b << ' ' << endl;
Swap(a, b);
system("pause");
return 0;
}
在上面的函数中我们先打印实参 a,b 的地址,然后在函数体里打印形参 left, right的地址输出结果如下
地址不同
如果只修改函数体里的参数,是无法改变实参的,因为形参只是实参的拷贝
就像我们的交换函数,交换的是函数体里的实参的拷贝,地址和实参不同,实参没有发生改变,改变的是形参.最终在调用他的main函数里,没有实现交换.