- *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
- *++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
- ++*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 则自增/减运算符作用于指针指向的值。