else if(flag){....}后面的判断是出现在前面的数字中断后,如 321X 当到X的时候.flag=1且不在if(*p>='0'&&*p<='9')条件中,执行else if(flag)将计算好的S放入数组a中。s的值就如321一样,百位(*p-48)*10*10(注意:*p-48是将字符化为整数)+十位(*p-48)*10+个位*p-48;最后那个if(flag)t[j++]=s是考虑到字符串最后是数字,没执行else if的情况。