如果不通过指针传递参数,那么交换就不会发生。下面的函数通过值来传递两个整数:
void swap(int num1, int num2) {
int tmp;
tmp = num1;
num1 = num2;
num2 = tmp;
}
下面的代码将两个整数传递给函数:
int main() {
int n1 = 5;
int n2 = 10;
swap(n1, n2);
return 0;
}
然而,这样并没有实现交换,因为整数是通过值而不是指针来传递的。num1
和num2
中保存的只是实参的副本。修改num1
,实参n1
不会变化。修改形参不会影响实参。图3-4说明了形参的内存分配。