C语言中指针与自增/减运算符(++,--)的关系,*p++、*++p、++*p的理解

  1. *p++:
    相当于 *p ; p++ ;
    即先取指针p指向的值,再将指针p指向下一个位置。
int ar[3]={12,34,56};
int *p=ar;            //p指向ar[0]
printf("%d",*p++);    //输出*p=12,p指向ar[1]
printf("%d",*p);      //输出34
  1. *++p
    相当于++p; *p ;
    即指针先指向下一个位置,再取指针p指向的值。
int ar[3]={12,34,56};
int *p=ar;            //p指向ar[0]
printf("%d",*++p);    //p指向ar[1],输出*p=34
printf("%d",*p);      //输出34
  1. ++*p
    相当于 *p+=1;
    即指针所指向的位置的值加一
int ar[3]={12,34,56};
int *p=ar;            //p指向ar[0]
printf("%d",++*p);    //*p加1,输出*p=13
printf("%d",*p);      //输出13

个人理解:若自增/减运算符与指针直接接触,如:*p++ 、*++p,则自增/减运算符只作用于指针(即将指针向后/前移动一个位置);若非直接接触,如: ++*p 则自增/减运算符作用于指针指向的值

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值