[bo]以下是引用 [un]simplelive[/un] 在 2008-3-15 22:58 的发言:[/bo]
fun(char *w,int n) /*我的理解:从下面主函数知道n=7*/
我觉得这个代码是写错了的,从这个函数的意图猜测,它是想实现strrev的功能,也就是把字符串反转,但是由于它的++和--运算符位置处理不当,使这个函数的功能出错了。正确的顺序应该是:
t=*s1;
*s1++ =*s2;
*s2-- =t;
fun(char *w,int n)
/*我的理解:从下面主函数知道n=7*/
{char t,*s1,*s2;
s1=w;s2=w+n-1;
/*把字符串"1234567"的首地址赋给s1,把w+6赋予s2.*/
while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}/*s1与s2比较是不是比首地址处字符的ASCII码?t=*s1++是怎么执行的,是先将s1所指的内容赋予t,再s1指向下一个字符?还是先移向下一个字符,再把此字符赋予t呢?)*/
}