while(*t++),++优先级高于*,但++在后,因此是使用完t后再++。*t先指向变量取值,之后指针t后移。fun函数计算的就是t相对于p的位移,结果肯定是3了。
程序代码:# include <stdio.h>
int fun(char *p)
{
char *t=p;
printf("t=%#x\n",t);
while(putch(*t++))
printf(" t=%#x *t=%c\n",t,*t);
printf("t=%#x\n\n",t);
return(t-p-1);
}
main()
{
printf("%d\n\n",fun("abc"));
getch();
} 输出结果: