一分钟了解指针和引用区别

1.从内存分配的角度

   指针会开辟新的内存区域,引用和原来对象共享内存,不会再分配内存空间

2.从初始化角度

  指针可以先初始化,然后在给它附值,并且后面还可以修改,比如:int *p,p=&a,p=&b

  引用初始化的时候必须赋值,附完值不能在改变 比如:int &b=a; 表示b是a的一个引用,这样b和a绑定在一块,不能再用b去引用其他对象

3.从访问方式

  引用是直接访问,指针则是间接访问。


下面来看个例子:  交换a,b的值


#include <stdio.h>
void main()
{
  void firstExange(int *a, int *b);

  void secondExanget(int &a,int &b);
  int c=3,d=4;
  int *p = &c;
  int *q = &d;
  firstExange(p,q);
  printf("first:c=%d,d=%d\n",c,d);         

  secondExange(c,d);             
  printf("second:c=%d,d=%d\n",c,d);

}


void firstExange(int *a, int *b)
{
  int temp;
  temp = *a;
  *a = *b;
  *b=temp;
}

void secondExange(int &a,int &b)

{

    int temp ;

   temp  = a;

   a= b;

   b=temp;

}

输出结果是first:c=4,d=3  second:c=3,d=4; 

可以看出这两种方式都可以实现交换


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值