*和++的优先级

2013-07-04 11:41:28

primer上说++优先级高,但我网上查了下,好多说二者优先级一样,从右向左。
这两种解释的结果是一样的。哪个是对的?


* 有两个意思,理论上

作为 乘法 运算符,级别低于 ++(自增)。
作为 指针取值 运算符,级别同 ++(自增)一样。

*p++; 很令人混淆。它不是 *p = *p + 1; 它却是 *p = *(p+1); 而且是后加加。
int a[]={1,12,23};
int *p=a;
printf("%d\n",*p++);
输出 a[0]的值 1
出了上面打印语句再自增 *p = *(p+1);
接着打印 printf("%d\n",*p); 打出 a[1]的值 12。

所以不只是优先级问题!
posted @ 2013-07-04 11:44  永不止步,永无止境  阅读(2623)  评论(0编辑  收藏  举报