题目
函数交换两个整数的值(指针参数)
思路
本题用函数交换两个整数的值,必须用指针参数才能改调用者的变量。
写 void swap(int *x, int *y),用临时变量交换 *x 与 *y;调用时传地址 swap(&a, &b)。
解题分析
C 语言按值传参,交换必须传指针。函数内交换 *x 与 *y,main 传地址。与第 5 题变量交换是同一原理的不同场景。
完整程序
#include <stdio.h>
static void swap_int(int *x, int *y)
{
int t = *x;
*x = *y;
*y = t;
}
int main(void)
{
int a, b;
if (scanf("%d %d", &a, &b) != 2) {
return 1;
}
printf("before: %d %d\n", a, b);
swap_int(&a, &b);
printf("after: %d %d\n", a, b);
return 0;
}
运行示例
输入:
3 7输出:
before: 3 7
after: 7 3