if((fp=fopen(filepath,"w"))==NULL)这句话
等号优先级高于赋值,那么先进行判断
再赋值 fp不就只能有0或者1了吗
不管什么优先级,只要有括号,都是先执行括号。你这里前面是有括号的。
好比
(1+1)*2,当然先算1+1,不管*优先级多高。
运算符优先级一般为: !> 算术运算符 > 关系运算符 > && > || > 赋值运算符,
是先执行fp=fopen(filepath,"w"),然后在跟NULL比较
因为你加了小括号,先执行了小括号里面的fp=fopen(filepath,"w"),如果没加小括号就是你说的那样