当前位置:   article > 正文

C语言指针 *p++和*++p及++*p的区别

++*p

今天复习了一下C语言的指针题目,发现在很多代码结果题目中都出现了表达式*p++、**++p和++*p,而这几个表达式特别容易混淆。
那么通过什么方式区分他们呢,答案就是运算符优先级。

  1. *p++
    ++和 *(指针访问运算符)优先级相同,根据从右往左的结合性,因此等价于 *(p++),又因为后置++是先使用再自加,所以先取值 *p,然后再让p加1.
  2. *++p
    ++和 *(指针访问运算符)优先级相同,根据从右往左的结合性,因此等价于 *(++p),也就是先让指针p加1,再取此时指针p的值。
  3. ++*p
    ++和 (指针访问运算符)优先级相同,根据从右往左的结合性,因此先取p的值p,然后再将值 *p加1。

可以将其做成表格

A=第一步第二步
*p++*pp++
*++p++p*(++p)
++*p*p(*p)+1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/79726?site
推荐阅读
相关标签
  

闽ICP备14008679号