指针与引用的一些总结

1.声明普通变量和声明指针的区别

在使用的开始需要明白的一点,当函数调用变量时,会先拷贝一份:

class A
{
    public :
        String name;
}
void F(A a)
{
    cout<<a.name
}
A a;    //声明一个A的变量   
F(a);    //调用时会将a拷贝一份,此时a就是那份拷贝

函数调用一个类A的变量,此时A进行一份A的拷贝,当sizeof(a)变得很大时,拷贝的时间就比较长。

并且因为是拷贝,所以f(a)中的改变并不能反映到声明的a变量。

void F(A *a)
{
    cout<<a->name;
}

这里用指针,当F(&a)时传入指针的地址,此时指针地址为一个整数,此时是使用箭头。

void F(A& a)
{
    cout<<a.name;
}

当为引用时,引用的是指针的地址,指针的地址在32位的计算机上时大小都是32位,并且此时引用兼顾了普通变量的使用便捷性。

需要说明的是,引用不可为空值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值