📅  最后修改于: 2023-12-03 15:00:12.673000             🧑  作者: Mango
这是一道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