这个c语言for循环,到底怎么回事?求解!!

输入a字符串 123 和b字符串 456 运行后能把两个字符串链接起来结果是123456但是下面的for循环是如何执行的? 我由内到外的分析和运行,总感觉是错的,得到123456这样的结果,到底是怎么运行的呢?
我想知道for是怎么运行的,程序能得到想要的结果,但是读程序总感觉是错的!

第1个回答  2018-01-08

代码没有错误. 

不过 你这个代码 多加了一对大括号.

第一个for后面有一个分号. 所以 第一个for只是起到找到a的结尾作用. 并不是双重循环.

多加了大括号和缩进, 导致看起来是双重循环了, 于是使你分析错误.

但由于for后面分号的存在, 这个代码还是两个单重循环的. 结果正确

本回答被提问者和网友采纳
第2个回答  2018-01-08
第一个for后面有一个分号,后面的大括号其实只执行一次追问

后面的for只执行一次的话
就是 j=0 b【0】!=\0 成立 a【0】=b【0】
j=1 b【1】!=\0 成立 a【1】=b【1】
j=2 b【2】!=\0 成立 a【1】=b【1】
感觉还是得不到123456呀,请问能麻烦您把循环的步骤写给我让我看看我思路哪里出错了吗?我想了一两天了,超级感谢!

追答

第一个for还是会执行的,i的值会变

第3个回答  2018-01-08

代码没有错误. 

不过 你这个代码 多加了一对大括号.

第一个for后面有一个分号. 所以 第一个for只是起到找到a的结尾作用. 并不是双重循环.

多加了大括号和缩进, 导致看起来是双重循环了, 于是使你分析错误.

但由于for后面分号的存在, 这个代码还是两个单重循环的. 结果正确

本回答被提问者和网友采纳
第4个回答  2018-01-08
第一个for后面有一个分号,后面的大括号其实只执行一次追问

后面的for只执行一次的话
就是 j=0 b【0】!=\0 成立 a【0】=b【0】
j=1 b【1】!=\0 成立 a【1】=b【1】
j=2 b【2】!=\0 成立 a【1】=b【1】
感觉还是得不到123456呀,请问能麻烦您把循环的步骤写给我让我看看我思路哪里出错了吗?我想了一两天了,超级感谢!

追答

第一个for还是会执行的,i的值会变

相似回答
大家正在搜