(1)值传递只改变形参的值,以swap()为例,i和j 的值没有交换。
void swap(int a, int b) { int temp; temp = a; a = b; b = temp; }
int i = 3, j = 4; swap(i, j);
|
(2)地址传递(指针传递),i,j值交换了
void swap(int *a, int *b) { int temp; temp = *a; *a = *b; *b = temp; } int i = 3, j = 4; swap(&i, &j);
|
(3)变量的引用,i,j的值也交换了,引用的主要用途是修饰函数的形参和返回值。对比(1)和(3),引用的写法像值传递,但却有指针传递的功能。
void swap(int &a, int &b) { int temp; temp = a; a = b; b = temp; } int i = 3, j = 4; swap(i, j);
|
阅读(804) | 评论(0) | 转发(0) |