分类：电脑/网络-程序设计-C/C++
问题：关于指针#include&lt;iostream&gt;usin 
#include <tream>using namespace std;int main (){  int a[5]={1,2,3,4,5},*p;  p=a;  cout<<*p++<<endl;  return 0;}其中*p++改成*(p++)怎么结果还是一样的，不是因该先算括号里面的么？
回答：我知道你的意思是希望先++再取其值。中很多算法确实要这么做。怎么实现呢？也是用这个++,只是++要写在前面，如：在你的题中这么写cout<<*++p<<endl; 或cout<<*(++p)<<endl; 这样就会先+再取值。请注意，在学习过程中不要只记得有p++这样的表达方法，其实还有++P哟。***************************************************************关于补充问题：*p++只是C语言的一种表达方式，其它计算机语言很少使用这种表达方式。这表达确实有争议，他破坏了逻辑性。这个表达式实际上是两个独立的表达式：*p;p++;因为是两个独立的表达式所以不存在运算符优先的问题，谁在前谁先算。所以不管怎么样都会先算*p*++p实际上是：++p;*p;所以不管怎样都会先算++p如果你要彻底了解其计算方法，在VC中对调式时打开反汇编就一目了然了。祝你成功！