c语言 *p++与(*p)++、*(p++)三者异同?

c语言 *p++与(*p)++、*(p++)三者异同?
请举例说明

第1个回答  2018-06-01
首先这个是一个优先级的问题,++的优先级高于*优先级 所以*P++ 可以写成*(P++)
再者P++与++P的区别是一个是先引用在自增,一个是先自增在引用
*是表示取指向地址内的数据
所以该问题的可以这么理解 *p++是取该地址内的数据后地址+1,*++p是地址先+1在取数据取到的数据是地址增加后的地址内的数据,(*p)++则表示取到数据后应用数据以后数据自增
如:int a[2]={55,66} ,*p , c; p=a; c = *p++ ; 此时的c的值是55;
int a[2]={55,66} ,*p , c; p=a; c = *++p ;此时的c的值是66;
int a[2]={55,66} ,*p , c ,d; p=a; c = (*p)++ ;d =*p; 此时的c的值是55,此时的d的值是56;
第2个回答  2019-07-28
p
lljyh
相似回答