选择运算符

引用和指针

引用和指针引用的行为像一个const指针解引用一个有趣的关系式。从而给出如下:

int nValue = 5;
int *const pnValue = &nValue;
int &rnValue = nValue;
*pnValue and rnValue evaluate identically. As a result, the following two statements produce the same effect:

*pnValue = 6;
rnValue = 6;

同样,一个const引用的行为就像一个const指针指向const对象是隐式解引用。

因为引用总是“点”来有效的对象,而不能指出释放内存,引用的是比使用指针安全。如果一个任务可以通过引用或指针解决,参考一般应首选。指针通常只能用在引用是不充分的情况下(如动态分配的内存)。

成员的选择

通常有一个指针或引用一个结构(或类)。正如你已知道的,你可以选择使用一个struct的成员选择运算符成员(。):

struct Something
{
    int nValue;
    float fValue;
};

// Member selection using actual struct variable
Something sSomething;
sSomething.nValue = 5;

// Member selection using reference to struct
Something &rsSomething = sSomething;
rsSomething.nValue = 5;

// Member selection using pointer to struct
Something *psSomething = &sSo

注意指针解引用必须括在括号,因为成员选择运算符具有比解引用操作符的优先级更高的。

因为访问结构和类成员通过指针是笨拙的语法,C + +提供的第二个成员选择运算符(->)从指针做成员选择。下面的两行是等价的:


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值