码迷,mamicode.com
首页 > 其他好文 > 详细

关于*p++ (*p)++ *(p++)

时间:2014-11-03 01:35:49      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:*p++ *(p++) (*p)++

    char ch[3]={‘a‘,‘c‘,‘e‘};
    char *p=ch;

    1、

         printf("%c\n",*p++);
         printf("%c\n",*p);

    执行结果bubuko.com,布布扣

    说明:首先 *(指针运算符)和++(自增运算符)都属于单目运算符 ,优先性相同,且结合性都是 自右向左。

    *p++ 先执行*p,即取出p指针指向的单元的内容,而后对p进行自增运算,即p指针指向原来单元的下一个单元,即指针p指向c单元。

    2、

    printf("%c\n",(*p)++);
    printf("%c\n",*p);

        执行结果:

            bubuko.com,布布扣

    说明:(*p)++ 大家都知道先执行括号内的 即取出p指向单元的内容, 但是与*p++不同的是 自增的不再是p,而是括号里面的整体*p ,(此时p指针也没有向后移位,而是改变了*p,即a自增1 变成了b)    

    3、

    printf("%c\n",*(p++));
    printf("%c\n",*p);

    执行结果:

    bubuko.com,布布扣

    说明:*(p++) 先执行括号内的p++,但是如果对p++还进行操作的话 (该操作是 取内容 即* ,与第一个的区别就是 第一个是先进行了取p的内容,在对p进行自增前进行了输出的操作),是先引用p,再对p进行自增,所以第一句输出的仍然是a。

本文出自 “xingNalLu” 博客,请务必保留此出处http://781588100.blog.51cto.com/9429625/1570899

关于*p++ (*p)++ *(p++)

标签:*p++ *(p++) (*p)++

原文地址:http://781588100.blog.51cto.com/9429625/1570899

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!