#include<iostream>
using namespace std;
void aSwitchB(int a, int b);
void p_aSwitchB(int *pa,int *pb);
int main() {
int a, b;
cout << "请输入整数a,b" << endl;
cin >> a >> b;
printf("a=%d\tb=%d\n", a, b);
printf("aSwitchB(int a, int b)\n");
aSwitchB(a, b);
//int*& a = b;//无法用 "int" 类型的值初始化 "int *&" 类型的引用(非常量限定)
int* pa = (int*)&a;
int* pb = (int*)&b;
cout << "通过指针,直接向a,b所在地址写入数据" << endl;
cout<<"p_aSwitchB(int *pa,int *pb)" << endl;
p_aSwitchB(pa, pb);
cout << "a="<<a<<"\tb="<<b << endl;
system("pause");
return 0;
}
void aSwitchB(int a, int b) {
int newA = b;
int newB = a;
cout << newA << "\t" << newB << endl;
printf("a=%d\tb=%d\n", a, b);
printf("形参发生改变并不影响实参\n");
}
void p_aSwitchB(int *pa,int *pb) {
int temp = *pa;
*pa = *pb;
*pb = temp;
cout<<"a,b已发生交换!"<<endl;
}
【C++为地址赋值】
于 2023-01-11 21:03:50 首次发布