优先级:同一个操作数,优先执行。例如: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