*a++的含义及C语言中的左值(Lvalues)和右值(Rvalues)
1、
*和++哪个优先级更高?
两个处于同一优先级,编译器结合方向是自右向左,所以*a++可看成*(a++),即先执行a++,后执行*a。但由于这里的“++”号是后加加号,所以会在整条语句执行完后再对a自加一。所以最终的实际执行效果等效为:先执行(*a)操作,后a自加。
*a++可看成*(a++),即先执行a++,后执行*a。但由于这里的“++”号是后加加号,所以会在整条语句执行完后再对P自加一。所以最终的实际执行效果等效为:先执行(*a)操作,后a自加。
2、*a++和(*a)++的区别
一个是 指针后移 一个是指针指向的内容自加
3、举例
int *a, b[2]={2,1},c;