Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20708
  • 博文数量: 9
  • 博客积分: 382
  • 博客等级: 一等列兵
  • 技术积分: 85
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-17 10:44
文章分类

全部博文(9)

文章存档

2010年(3)

2009年(6)

我的朋友
最近访客

分类: C/C++

2009-12-29 21:50:23

(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) |
给主人留下些什么吧!~~