C语言中有个很奇怪的规定, 只要一个值不是0, 他就相当于真, 0就是假你那个flag是个int, 所以if(flag) 就相当于 if(flag!=0)当且仅当flag==0的时候, if条件失败, 否则都视为成功不推荐这么写, 这个写法很不好
if(flag)是if判断啊,如果flag是bool型,可以理解成如果flag为真,则执行if条件下的语句。如果flag是整型变量,则flag为非0的时候执行if条件下的语句。
括号里面的值为0时不执行,为1时执行