例: int a[5]={11,22,33,44,55};
int p=a;
printf("%d\n",*p++);
printf("%d\n",(p++));
上面"*p++" 和"*(p++)",都是一樣的自右向左的優先級.但又怎麼先取值,再加1?
不是先進行"++"後指針"*"嗎?
*p++; 不是 *p = *p + 1; 它卻是 *p = *(p+1); 而且是後加加。
int a[5]={11,22,33,44,55};
int *p=a;
printf("%d\n",*p++); 輸出 a[0]的值 11,後加加:表達式裡先用原值,不自增。
出了上面打印語句再自增 *p = *(p+1);
接著打印 printf("%d\n",*p); 打出 a[1]的值 22。