首先,这三个表达式是等价的,'\0'的ascii码就是0,而0转bool值是false,所以不等于0的表达式跟它自身转bool值是一样的其次,这三个表达式都存在同样的问题,就是它的i是在for里定义的,不是在for前面定义的,那么当for执行的过程中i确实能取到字符串的长度,问题是for执行完了i也被回收了,你没法取得i的值呀