指针和引用那些事

指针和引用的概念:

指针:变量的内存地址,是一个常量;

引用:一个已定义变量别名;

指针和引用区别:

(1)指针是一个地址,指向内存中一块存储单元,它的值可以发生变化,可以指向其他存储单元;引用是一个变量别名,和原来变量是同一个东西,即在内存中占有同一存储单元,被编译器实现为const指针,并且不可被多次初始化(重定义);

话不多说,看下面例子:

void test1()
{
    int b=1;
    int &b1=b;
    cout<< "&b:"<<&b<<endl;
    cout<< "&b1:"<<&b1<<endl;
}


(2)使用指针时可以不初始化,即为空;使用引用时必须初始化.
void test2()
{
      int *p;
      int &a;
}


(3)指针有多级,可以有指针的指针(二级指针),即int **p;但引用只有一级,没有引用的引用;

void test3()
{
      int **p=NULL ;
      int a=1;
      int &&a1=a;
}

(4)指针和引用的自增(++)运算意义不一样;指针自增表示指针指向内存下一块存储单元,引用自增表示变量的自增;

void test4()
{
    int b=1;
    cout<< "b:"<<b<<endl;
    int &b1=b;
    b1++;
    cout<< "b1:"<<b1<<endl;
    int a[3]={1,2,3};
    cout<< "&a:"<<&a<<endl;
    int *p=a;
    p++;
    cout<< "&p:"<<&p<<endl;
}

 

(5)sizeof运算引用的是引用变量的大小,sizeof运算指针的是指针本身大小;

void test5()
{
    char *p=NULL ;
    char c=1;
    char &c1=c;
    cout<< sizeof(p)<<endl;
    cout<< sizeof(c1)<<endl;
}


(6)可以建立指针数组,但不可以创建引用数组;

void test6()
{
    int *p[10]={0};
    int &a[10]={0};
}


指针和引用优点和缺点:

指针比引用灵活,引用比指针安全;

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值