在C语言中,可以使用以下两种方式调用swap函数:
- 通过传递变量的地址进行调用:
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int x = 10, y = 20;
swap(&x, &y); // 通过传递变量的地址进行调用
printf("x = %d, y = %d\n", x, y); // 输出 x = 20, y = 10
return 0;
}
- 通过传递变量的值进行调用:
void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
int main() {
int x = 10, y = 20;
swap(x, y); // 通过传递变量的值进行调用
printf("x = %d, y = %d\n", x, y); // 输出 x = 10, y = 20
return 0;
}
需要注意的是,第二种方式传递的是变量的值,而不是变量的地址,因此在swap函数中修改的只是形参a和b的值,并不会改变实参x和y的值。所以,如果想要在调用swap函数后改变实参的值,应该使用第一种方式调用。