新手C语言,这句话怎么理解?

来源:学生作业帮助网 编辑:作业帮 时间:2024/06/09 13:11:00
新手C语言,这句话怎么理解?
xTmoV+nnX`ǁݿ6vĄ`EyB4M%/ϵsmfV-?\prL27OvP|uνzo*P>:ubΥn当_&N/FL1a~)XRRSѨLv9kDdIO?(џ2zZFsݙ"E bJjqMRLLV~FD.P㪪I$9$T)O |ZDDM$qNc+ZRQoe6Fq~&͋aCUPYGg9\Юhn>yHD;KRjkOSx᭍v?n=yg`BI$y,4WAx/Y;]=kϡDD^S lZ=/Yf"a0^u23Quzԏk_9>C}Cgk֬\" ^k5j-l[8Dj٭؅U:u펖]bLcN2g| CpRdaYpnNF|{P'֖σUŇgT %;

新手C语言,这句话怎么理解?
新手C语言,这句话怎么理解?
 

新手C语言,这句话怎么理解?
这是根据fun的功能的结论.
fun的功能是:
遍历从s[0]到s末尾的所有字节,如果s[i]是数字字符'0'~'9',那么将s[i]后面的所有字符(从s[i+1]直到最后的'\0')都往后移动一位,空出来的s[i+1]设为星号'*'.
如果注释“此句也可以不要”所在的i=i+1这句话没有,那么随着外层循环for (i =0, s[i]!='\0'; i++)的再一次开始,会先执行一次i++,于是s[i]就变成了刚刚插入的那个'*'.而for (i =0, s[i]!='\0'; i++)的第一判断就是“如果s[i]不是数字字符,则什么都不做”.换言之,s[i]是星号的时候,循环体会立刻完成当前这一轮,然后再度回到for (i =0, s[i]!='\0'; i++),执行i++.
简而言之,注释所在的i=i+1这句话,如果没有,只是会多执行一轮外层for循环,外层for循环的i++也能实现这个i=i+1.不影响程序结果.
如果考虑效率问题,保留i=i+1这句话的话,就可以省掉两次判断(一次是s[i] != '\0',另一次是if (s[i] >= '0' && s[i]