“++”和“--”两个运算符都属于算术运算符。++和--又有前缀、后缀的区别,++a的++属于前缀,a++的++属于后缀,后缀++是Postfix
operator,结合顺序为从右向左;前缀++是Prefix
operator,结合顺序为从左向右。后缀的优先级高于前缀的优先级。
char a[]={10,20};
char *p,b;
p=&a[0];//将数组a[0]的地址赋给p
b=*p++,其中++属于后缀,所以优先级高于*,相当于b= (*(p++)),也就是说++操作于p上,可以分解为b=*p;p++;总的作用就是b=10 ,p指向地址2001;a[0]和a[1]不变。
b=(*p)++,强制改变优先级,先进行(*p)运算,其结果为p引用的对象,可以分解为b=(*p);(*p)++;总的作用就是b=10,a[0]=11,p指向地址2000;
b=*++p,相当于b=(*(++p)),也就是说++操作于p上,结果为p加1后的值,再作*运算,可以分解为++p;b