
为了清晰明了,我们每次都使p指向数组的首地址。
(1)*p++
int b = *p++;//等价于a = *(p++); 即a = *p; p = p + 1;
执行上面语句,输出b=10
执行语句*p++;后,*p=20;
(2)*++p
int d = *++p;//等价于 p =p+1; d=*p;
*和++的优先级相同,但根据它们的右结合性可知,先p=p+1;后d=*p;因此d=20
(3)(*p)++
int e = (*p)++; 等价于 *p;*p+1
此处括号的优先级高于++运算符,因此先*p;后*p+1;因此e=10;之后再e+1
(4)++*p
int f = ++*p; 等价于*p+1
*和++的优先级相同,但根据它们的右结合性可知,先*p;后f=*p+1;因此f=11
本文深入解析C语言中指针与各种运算符的使用,包括*p++、*++p、(*p)++及++*p的含义与执行顺序。通过实例解释了如何在数组操作中正确运用这些表达式,对初学者理解指针和运算符优先级有极大帮助。





