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

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/27 09:43:33
新手C语言,这句话怎么理解?

新手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]