【c语言】*p++、*++p、(*p)++、++*p 的区别学习

为了清晰明了,我们每次都使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

猜你喜欢

转载自blog.csdn.net/lbqlzch/article/details/85014976