交换数字,不用函数实现(指针) 题目描述 输入a和b两个整数,按先大后小的顺序输出a和b。 要求不交换整型变量的值,而是交换两个指针变量的值(即a和b的地址) 要求不能用函数实现。 输入 a=a的值,b=b的值 输出 max=a和b的较大值,min=a和b的较小值
时间: 2023-08-07 21:02:36 浏览: 98
以下是交换数字的代码,使用了指针变量而非交换整型变量的值:
```c++
#include <iostream>
using namespace std;
int main() {
int a, b;
int* p1 = &a;
int* p2 = &b;
int* temp;
cin >> a >> b;
if (*p1 < *p2) {
temp = p1;
p1 = p2;
p2 = temp;
}
cout << "max=" << *p1 << ",min=" << *p2;
return 0;
}
```
解释一下代码的实现过程:
首先,定义了两个整型变量 a 和 b,以及两个指针变量 p1 和 p2,分别指向 a 和 b 的地址。
然后,通过输入获取 a 和 b 两个整数的值。
接下来,判断 a 和 b 的大小,如果 a 小于 b,则交换 p1 和 p2 的值,使得 p1 存储的是 a 的地址,p2 存储的是 b 的地址。
最后,输出 p1 和 p2 指向的值,即 max 和 min。
阅读全文