[置顶] 使用指针互换两个实参的值

时间:2022-09-26 23:19:58
#include<stdio.h>

/*
课堂练习:写一个函数swap,接收2个整型参数,功能是互换两个实参的值
*/

void swap(int, int);
void swapWithPointer(int *p1, int *p2);
int main() {

int num1,num2;
num1 = 10;
num2 = 20;
//不使用指针
swap(num1, num2);
printf("不使用指针:num1:%d num2:%d\n",num1,num2);

//使用指针的方式
swapWithPointer(&num1,&num2);
printf("使用指针:num1:%d num2:%d\n",num1,num2);

return 0;
}

//不使用指针的方式
void swap(int v1, int v2) {

//交换v1和v2的值
int temp = v1;
v1 = v2;
v2 = temp;

}

//使用指针的方式
void swapWithPointer(int *p1, int *p2) {

// int *p;
// *p = 3;
//错误
//交换值
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;

}