在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函數后改變實參的值,應該使用第一種方式調用。