赞
踩
*和++是同优先级操作符,且都是从右至左结合的
*p++是指下一个地址
(*p)++是指将*p所指的数据的值加一
*(p++)是指是先取*p的值,再使p值+1;
*(p--)是指先取*p所对应的数据,然后使p-1;
*(++p)是指先对p+1,然后再取*p的值;
*(--p)是指先使p-1,然后在进行*p运算
++(*p)是指地址p所指的数据+1;
例:
- #include<stdio.h>
-
- int main()
- {
-
- int a[6]={1,2,3,4,5,6};
- int *p=a;
- printf("%d\n",*p++); // 先执行*p 并打印 1 ,再指针 p->a[1]
- printf("%d\n",(*p)++); // 先执行*p并打印 2 ,然后a[1]+1 = 3, 即数组更新为 a[] = {1 3 3 4 5 6} 指针还是指向a[1]
- printf("%d\n",*(p++)); // 先执行*p 并打印 3 ,再指针 p->a[2]
- printf("%d\n",*(++p)); // 先执行p->a[3] , 再打印a[3] = 4
- printf("%d\n",++*(p) ); // 先执行*p = 4,再自增 即a[3]+`1 = 5, 并打印 5 即数组更新为 a[] = {1 3 3 5 5 6} 指针还是指向a[3]
- printf("%d\n",*(p--)); // 先执行*p 并打印 5 ,再指针 p->a[2]
- printf("%d\n",*(--p));// 先执行--p ,指针p->a[1] 再打印3
- return 0;
-
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。