指针极大地扩展了函数的可能性。我们不再局限于返回一个值。使用指针参数,函数可以更改实际数据,而不是数据的副本。
要更改变量的实际值,调用语句将地址传递给函数中的指针参数。
例如,以下程序交换两个值:
void swap (int *num1, int *num2);
int main() {
int x = 25;
int y = 100;
printf("x是 %d, y是 %d\n", x, y);
swap(&x, &y);
printf("x是 %d, y是 %d\n", x, y);
return 0;
}
void swap (int *num1, int *num2) {
int temp;
temp = *num1;
*num1 = *num2;
*num2 = temp;
}
当函数使用指针按地址访问变量时,程序交换变量的实际值。