运算符优先级和结合性。
求值运算符 * 与 自增 ++ 优先级一样,结合性 ++ 先于 *.
三楼说得对, *iterator++相当于 *(iterator++) , 地址先增 1,1*sizeof(类型). 再求新地址的值。
不同于 *iterator=*iterator+1 地址不变,数值加1。
另外注意 表达式中 的 “后 ++” 问题,在表达式中不自增,出了表达式再自增 !
例子:
#include <stdio.h>
int main()
{ int a[5]={1,3,5,7,9};
int *n;
n=&a[0];
printf("%d ",*n++);
printf("%d\n",*n);
n=&a[0];
printf("%d ",(*n= *n+1) );
printf("%d\n",*n);
return 0;
}
输出:
1 3
2 2