大家好,代码如下,这是三个交换两个数字的程序(第一,第三个已经注释)我的问题是一开始设置的x=3,y=4,第一个输出以后输出的还是x=3,y=4,而第二第三个用了*或&就可以输出x=4,y=3,这是为什么呢?
#include<iostream>
using namespace std;
//void charge(int a, int b) {
// int temp;
// temp = a; a = b; b = temp;
//}
//int main() {
// int x = 3, y = 4;
// charge(x, y);
// cout << x << endl << y << endl;
// return 0;
//}
void charge(int *a, int *b) {
int temp;
temp = *a; *a = *b; *b = temp;
}
int main() {
int x = 3, y = 4;
charge(&x, &y);
cout << x << endl << y << endl;
return 0;
}
//void charge(int &a, int &b) {
// int temp;
// temp = a; a = b; b = temp;
//}
//int main() {
// int x = 3, y = 4;
// charge(x, y);
// cout << x << endl << y << endl;
// return 0;
//}