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

 我来答
冰火梦幻
2013-12-29 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:417万
展开全部
这是根据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] <= '9') ),程序会快一点。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式