当前位置:   article > 正文

关于*p++ 的探究

*p++

        在讨论指针自增问题之前,我们首先要知道*和++ 是同级运算,其运算先后及表达式的最终结果仅受自增特性的影响,所以我们的讨论才有意义。

       而对于*、++、和p的组合,可以分为以下5种:

                右自增的3种:

                        *p++        *(p++)       (*p)++

                左自增的2种:

                        ++*p        ++(*p)

        按照我最初的设想,构造数组x[3],并用a收集表达式的值,写出代码如下:

        

  1. #include<stdio.h>
  2. void main() {
  3. int* x[3] = { 1,2,3 };
  4. int* p;
  5. int a=1; //存放表达式的值
  6. p = &x; //使p指向数组x
  7. printf("1 Init=%d p=%d *p=%d\n", a, p, *p);
  8. a = *p++;
  9. printf("2 *p++=%d p=%d *p=%d\n", a, p, *p);
  10. p = &x; //重置指针p
  11. a = *(p++);
  12. printf("3 *(p++)=%d p=%d *p=%d\n", a, p, *
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/79777?site
推荐阅读
相关标签
  

闽ICP备14008679号