優先級:同一個操作數,優先執行。例如:1+2-3+8*9,先執行8*9
結合性:優先級相等的情況下,計算的方向,例如:int a, b, c; a=b=c=10;從右向左
#include <stdio.h>
int main()
{
int a[5] = {1, 3, 5, 7, 9};
int *p = a;
printf("%d\n", *p++);//1, ++的優先級大於*
return 0;
}
p++先結合,p++結合後p變爲p+1,但是p++表達式還是等於p,所以相當於打印*p,即爲1.
#include <stdio.h>
int main()
{
int a[5] = {1, 3, 5, 7, 9};
int *p = a;
printf("%d\n",*++p);//3
return 0;
}
++優先級大於*,++p現結合,結合後++p的表達式變爲p+1,所以打印*(p+1)
#include <stdio.h>
int main()
{
int a[5] = {1, 3, 5, 7, 9};
int *p = a;
printf("%d\n",++*p);//2
return 0;
}
優先級需要接觸,此時*p先結合 ,再結合++,相當於打印(*p)+1