当前位置:   article > 正文

*p++ 、 (*p)++等辨析

(*p)++

*和++是同优先级操作符,且都是从右至左结合的

*p++是指下一个地址

(*p)++是指将*p所指的数据的值加一

*(p++)是指是先取*p的值,再使p值+1;

*(p--)是指先取*p所对应的数据,然后使p-1;

*(++p)是指先对p+1,然后再取*p的值;

*(--p)是指先使p-1,然后在进行*p运算

++(*p)是指地址p所指的数据+1;

例:

  1. #include<stdio.h>
  2. int main()
  3. {
  4.      int a[6]={1,2,3,4,5,6};
  5.      int *p=a;
  6.      printf("%d\n",*p++);    // 先执行*p 并打印 1 ,再指针 p->a[1]    
  7.      printf("%d\n",(*p)++);  // 先执行*p并打印  2 ,然后a[1]+1 = 3, 即数组更新为 a[] = {1 3 3 4 5 6} 指针还是指向a[1]
  8.      printf("%d\n",*(p++));  // 先执行*p 并打印 3 ,再指针 p->a[2]
  9.      printf("%d\n",*(++p));  // 先执行p->a[3] ,   再打印a[3] = 4
  10.      printf("%d\n",++*(p) );  // 先执行*p = 4,再自增 即a[3]+`1 = 5, 并打印 5 即数组更新为 a[] = {1 3 3 5 5 6} 指针还是指向a[3]
  11.      printf("%d\n",*(p--));  // 先执行*p 并打印 5 ,再指针 p->a[2]  
  12.      printf("%d\n",*(--p));//   先执行--p ,指针p->a[1] 再打印3
  13.      return 0;
  14. }


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/79703
推荐阅读
相关标签
  

闽ICP备14008679号