//#include<iostream> //using namespace std; //void swap(int& a1, int& b1)//该情况下,将主函数中的a和b分别传递给了a1和b1,在引用的作用下,a和a1,b和b1分别共用一个空间, //{ // int t = a1; //在这里进行空间的交换,能够实现形参的交换 // a1 = b1; // b1 = t; //} //void swap1(int a1, int b1)//在该情况下,主函数中的a和b分别传递给了a1和b1,让a1和b1分别开辟了新的空间 //{ // int t = a1; //由于a和a1,b和b1的空间都相互独立,所以这里虽然发生了空间的交换,但是只发生了a1和b1的交换, // a1 = b1; //对主函数中的a和b的值不造成影响,所以改变后的值未输出,所以主函数的值不会发生交换 // b1 = t; //} //void swap2(int *a, int *b)//指针的本质与引用相似,都是对同一空间进行操作 //{ // int t = *a;//a1,b1在这里也会开辟新的空间,这里a1,b1的空间存放的是a,b的地址 // *a = *b; //而*a1,*b1是直接对a,b的地址进行操作,实际交换的是a,b的地址 // *b = t; //} //int main() //{ // int a, b; // a = 12; // b = 21; // cout << "交换前" << "a的值" << a << endl // <<"b的值" << b << endl; // //swap(a, b);//会发生值的改变 // //swap1(a, b);//不会发生值的改变 // swap2(&a, &b);//会发生值的改变 // cout << "交换后" << "a的值" << a << endl // << "b的值" << b << endl; // return 0; //}
标签:int,void,交换,笔记,a1,C++,空间,b1 From: https://www.cnblogs.com/kun-sir/p/16916615.html