[荐]从结合性看指针

【更新】2012-5-17,增加内容

【问题描述】

看下列4组概念:

(1)

*dates+2
*(dates+2)

(2)

*str++;
(*str)++;
*++str;
*(++str);

(3)

const int * pt;
int * const pt;

(4)

int * func(int a, int b);
int (* func)(int a, int b);

这4组概念怎样区分呢?下面从结合性的角度出发,来分析考虑。

【分析】

(1)

*dates+2
*(dates+2)

第一组概念,很多朋友都已经弄清楚了。

从结合性看上述概念,*(间接访问)操作符优先于+(加法)操作符。故*dates+2等价于(*dates)+2。也就是先对指针dates解引用,取出dates的内容。再对dates的内容+2。

而对于*(dates+2),()操作符优先于*和+操作符。故先计算dates+2,即将指针指向dates的第3个内存地址。再对该地址解引用,取出内存的内容。

(2)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值