C++中,改变函数内部变量的值对调用函数无影响。因此,若需改变传递给函数的变量值,应使用指针。例如,对于输入三个整数并按从小到大排序的情况,可以定义一个交换函数。该函数接受两个整数指针作为参数,用于交换这两个整数的值。在主函数中,首先通过指针获取变量a、b、c的地址,然后调用交换函数多次,以确保三个整数按升序排列。
以下是一个示例程序,展示了如何通过指针实现这一目标:
#include
using namespace std;
void chang(int *x, int *y) {
int k;
if (*x > *y) {
k = *x;
*x = *y;
*y = k;
}
}
int main() {
int a = 2, b = 3, c = 1;
int *pa = &a, *pb = &b, *pc = &c;
chang(pa, pb);
chang(pa, pc);
chang(pb, pc);
cout << a << ", " << b << ", " << c << endl;
return 0;
}
通过调用chang函数三次,可以实现三个整数的排序。在主函数中,首先定义了三个整数a、b、c,并初始化为2、3和1。然后通过指针pa、pb、pc分别指向这三个整数的地址。接下来,通过调用chang函数三次,首先交换a和b的值,然后交换a和c的值,最后交换b和c的值,从而实现a、b、c三个整数从小到大的排序。
注意,每次调用chang函数时,都需要传入指针作为参数,以便在函数内部修改原始变量的值。这种通过指针传递参数的方式,使得函数能够直接操作外部变量,从而实现变量值的改变。
温馨提示:答案为网友推荐,仅供参考