*p++ 该怎么理解,(*p)++和*(p++)又是什么?
先说*p++,++是后置++,后置++的运算符优先级比*大,所以首先进行后置++运算,所以*p++就是*(p++)
那么*p++的值是什么呢,首先要时刻警惕后置++,是先取值,后自增,不要像年轻时的小明一样,只在赋值运算的时候才会记住是先取值,其他的运算的时候却觉得要先自增,我觉得这和教科书上的例子有关,总是用赋值运算来进行说明,搞得森破的小明第一印象只记住了赋值运算(这个借口我很信服(⊙﹏⊙)b)。所以话说回来,我想你已经明白了,*p++的值就是*p,但是取值后,p进行了自增。等价于{*p;p++}。
前面已经说过,*(p++)和*p++是一样的,觉得没说过的请从头再看一遍,下面来说 (*p)++,其实这个也没啥好说的,它的值也是*p,因为再提醒一遍,后置++是先取值后自增,取值结束后,*p进行自增。
就是这样