黔南民族师范学院书记:C语言中指针的问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 15:11:38
看来有人提出求运行结果
int a=2,*p=&a,*q=&a;
printf("%d %d\n",*p++,*(q++));
p=&a;q=&a;
printf("%d %d\n",*p,(*q)++);

我运行了结果为
2 2
2 2

如果结果正确,也就是说*p++和*(p++)是一回事的,只有(*p)++才能
是a++的意思,不知道这么理解是否正确。

楼主说的没错!不过楼上的说错了!
*和++是一个级别的,++不比*高
C语言一元操作符是从右向左结合!所以二者等效
后面一个正确,没的说

楼主完全正确
是这样的++的优先级比*高.
也就是说*p++和*(p++)是一回事的,
*q,*p代表a.所以(*p)++就代表a++