c - 带关系运算符的 while 循环

标签 c while-loop boolean

int I;
I=0;
while ((CH1[I]=CH2[I]) != '\0')
      I++;
puts(CH1);

这个程序是把CH2复制到CH1中,但是我不明白循环条件(CH1[I]=CH2[I]) != '\0')

最佳答案

while 循环条件包含两部分:

CH1[I]=CH2[I] // this is an assignment that copies character at Ith position in array CH2 into array's CH1 Ith position
(...something...) != '\0' // checks if 'something' is not equal to '\0', the string termination character.

因此 while((CH1[I]=CH2[I]) != '\0') 一次将一个字符从 CH2 复制到 CH1 并在复制到“\0”时立即中断,这意味着已到达字符串末尾并且没有更多字符可供复制。

关于c - 带关系运算符的 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48142386/

相关文章:

java - 如何在java中读取.cnf文件

mysql - 为什么这个查询结果是 boolean 值而不是数字?

c - 为什么通过强制转换来动态分配结构不起作用?

c - 给字符串添加空格

linux - 在 while 循环之外时,无法读取从 while 循环中存储的变量

c++ - 如何生成大于 10 000 的数字

c - 将 x86 程序下面的端口移植到 mips32

c - 向程序中添加升序计时器

php - 我的数据库中的 while 循环正在重复结果。我知道这是我的查询格式不正确。

javascript - 是否可以从一个函数切换全局 boolean 值?