因为 *(p++) 用的是 后缀加加,按规定,在表达式内不自增,出了表达式后再自增。所以:printf("%d %d",*p,*(p++));就等于:printf("%d %d",*p,*(p));输出 1 1再执行 p=p+1; (地址增 1*sizeof(int) ).----------你可以打印地址,看p指向的地址变化printf("%p\n",p);printf("%d %d\n",*p,*(p++));printf("%p\n",p);