(1)指针、解引用、自增混合使用的情况仅有*p++,*++p,++*p这三种吗?
此问题可用排列知识解答。指针、解引用和自增这三种元素的排列方式共有种,但由于解引用必须位于指针之前,因此种类数减半。
(2)如何弄清它们的运算过程?
先要弄清,解引用和自增的运算优先级以及结合方向。解引用和自增的运算优先级相同,且结合方向均是从右向左,这意味着:
*p++ ~ *(p++),*++p ~ *(++p),++*p ~ ++(*p),更具体地运算过程如下:
v = *p++ ==== tmp = p++, v = *tmp
v = *++p ==== tmp = ++p, v = *tmp
v = ++*p ==== tmp = *p, v = ++tmp