c语言 这个程序里这句while(b[i]!='\0') i++;换成while(b[i++]!='\0') ;可以吗

#include<stdio.h>main(){chara[100]="fewfwefa",b[100]="wfwqfwqf",c[]="efwfwef";inti=0,... #include<stdio.h>
main()
{
char a[100]="fewfwefa",b[100]="wfwqfwqf",c[]="efwfwef";int i=0,j=0,k=0,n=0;
while(b[i]!='\0')
i++;
while((b[i++]=c[j++])!='\0')
;
while(a[k]!='\0')
k++;
while((b[n])!='\0')
{a[k]=b[n];k++;n++;
}
a[k]='\0';
printf("%s",a);
}
展开
 我来答
笃侠6A
推荐于2016-01-19 · TA获得超过3735个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3517万
展开全部
这个程序中没有问题,因为循环之后没有使用i的值,如果循环结束后需要用i的值,这两者就不能相互取代了,因为:
while(b[i]!='\0') i++; ——循环结束后i为字符串长度
while(b[i++]!='\0') ; ——循环结束后i为字符串长度+1
更多追问追答
追问
如果 b[i++]!='\0' i还要   ++吗?
追答
对,只要作b[i++]!='\0' 这个判断,就要执行i++。
米暗牧
2014-08-04 · TA获得超过853个赞
知道小有建树答主
回答量:595
采纳率:50%
帮助的人:318万
展开全部
while((b[i++]!='\0');
i--;

底下再加一句i--就完全一样了。
追问
while((b[i++]!='\0'); 这句i 执行到了'\0'的后一个 所以要-1?
追答
执行到'\0'后,while会跳出去,但是i还会加1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
君子不刃
2014-08-04 · 超过20用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:36.8万
展开全部
i++; 等同于

i = i +1;
而且是语句之后才为赋值。
所以,逻辑上完全没问题。

不过一般不建议哈,代码是写给人的。
首先要很容易看懂,容易修改,维护。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-08-04
展开全部
这个可以,如果是指针的话就不可以这样了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式