//C语言指针*p++、*(p++)、*++p、*(++p)、(*p)++、++(*p)对比实例
#include<stdio.h>
int main(){
int a[] = {10,20,30,40,50};
int *p;
p = a;
printf("*p:%d\n",*p);//初始位置是指向a[0]
printf("*p++:%d\n",*p++);//此时P还是指向a[0],输出完a[0]后指针地址自加一指向下一个位置(也就是a[1]的位置)
printf("*(p++):%d\n",*(p++));//此时指向a[1]。输出完a[1]后指针地址自加一指向下一个位置(也就是a[2]的位置)
printf("*++p:%d\n",*++p);//指针此时指向a[2]的位置。指针地址先自加一指向下一个位置(也就是a[3]的位置)再输出
printf("*(++p):%d\n",*(++p));//指针此时指向a[3]的位置。指针地址先自加一指向下一个位置(也就是a[4]的位置)再输出
printf("(*p)++:%d\n",(*p)++);//指针此时指向a[4]的位置。先输出a[4]后再对这个地址的值进行自加一(也就是a[4]的值从50变成51)。
printf("++(*p):%d\n",++(*p));//此时a[4]的值已经是51了。先对a[4]的值自加一(也就是a[4]的值从51变成52)再输出。
return 0;
}
/*
总结:
*(p++) 和 *p++ 等价
*++p 和 *(++p) 等价
*/
C语言指针*p++、*(p++)、*++p、*(++p)、(*p)++、++(*p)对比实例
于 2022-06-26 17:46:53 首次发布