!的优先级应该是要高于&&的,所以我认为当i=0时,if后面的语句为假,所以会执行ts[0]='\0',那再用puts函数,不应该什么都输出不了吗

img


!的优先级应该是要高于&&的,所以我认为当i=0时,if后面的语句为假,所以会执行ts[0]='\0',那再用puts函数,不应该什么都输出不了吗

首先,for循环没有括号,所以赋值语句在循环外面,它的功能只是给字符串最后加个结束符
其次,就算把它放到循环里面,也毫无影响。因为循环并没有结束,它给哪个元素赋值,下个循环里自然给重新赋值了。

那个赋值语句不在循环里面