这个循环的终止条件是这样的,
因为 c=string[i] ,这里是赋值,不是判断,所以是赋值之后看赋值结果是不是0,决定是否继续循环。
当循环到字符串最后一个字母 ?之后,下一次循环的时候,赋值给 c的是字符串结束标记 ‘\0' 这个东西其实就是 NULL 也就是0 也就是 C就等于0了,那么循环就不用继续了。
c=string[i]作为for循环退出的判断条件,其实是吧 这个语句当作是一个返回 true 或者false的表达式来使用的,该语句是个赋值表达式,其实是判断 c是否为0.按照上面的给string数组赋值之后,该数组81个字节长度,除了存放 how are you?的部分都被初始化为0(sacii码的0,也就是\0字符),所以当在读到问号的下一次该判断返回false,退出。
最多到81,然后当c里的字符串统计完循环结束
?