📜  C测验– 108 |问题4(1)

📅  最后修改于: 2023-12-03 15:00:12.673000             🧑  作者: Mango

C测验-108 | 问题4

这是一道C语言相关的测试题,涉及指针的使用。以下是题目描述:

在C语言中,指针是一种非常重要的类型。现在给你一个指针的练习题,请编写一个函数,用于将传入的两个指针所指向的整数交换位置。函数原型如下:

void swap(int *p, int *q);

函数实现要求传入两个指针参数,将其所指向的整数交换位置,并且函数无返回值。

请你编写代码实现这个函数。

解题思路

这道题目需要我们使用指针来交换两个整数的位置。在函数中,我们需要对指针所指向的整数进行交换操作。为了实现这个操作,我们需要使用到指针的解引用操作符 *。

void swap(int *p, int *q){
    int tmp;
    tmp = *p;
    *p = *q;
    *q = tmp;
}

首先,我们定义一个变量tmp,用于存储p的值。然后,我们将q的值赋给p,将tmp的值赋给q,从而实现了两个整数的交换操作。

完整代码
#include <stdio.h>

void swap(int *p, int *q){
    int tmp;
    tmp = *p;
    *p = *q;
    *q = tmp;
}

int main(){
    int a = 10;
    int b = 20;
    printf("交换前: a=%d, b=%d\n",a,b);
    swap(&a, &b);
    printf("交换后: a=%d, b=%d\n",a,b);
    return 0;
}
运行结果
交换前: a=10, b=20
交换后: a=20, b=10