C语言中while (c[i] = a[i++]);是什么意思

如题所述

这是
c[i] = a[i]
之后 i++
就是c[i] = a[i] 将a[i]赋值给c[i],如果不等于0,一直继续从a[i] 中取书,赋值给
c[i]

是如果a[i]!=0 就一直赋值给c[i];c[i],a[i]的i 值 是一样的,都是i++ 之后的数,0,都是0,1都是1
温馨提示:内容为网友见解,仅供参考
第1个回答  2015-05-07
把数组a的所有元素逐个赋值给数组c。
当数组a的某个元素值为0时,循环退出。一般用作字符数组,因为字符数组的结束符刚好是0.追问

也就是a[0]赋值给c[0],a[1]也赋值给c[0],然后这样循环下去?有没有更好理解写法

追答

是的。
这种写法简洁,但并不推荐,因为不够直观。好理解的写法是这样的:
while (0!=a[i])
{
c[i] = a[i];
i++;
}
c[i]=0; //字符串的结尾置0

当然还有更好的其他写法,你可以自己考虑一下,写一段小程序测试一下,更好理解。

第2个回答  2015-05-07
把a数组的值赋给数组c;赋值完,结束循环
第3个回答  2015-05-07
是把a数组的值赋给c数组,一直到值为0, 这样的写法很不好,可能会越界冲内存
相似回答