1. //int与零值比较
    2. if ( n == 0 )
    3. if ( n != 0 )
    4. //bool与零值比较
    5. if (flag) // 表示flag为真
    6. if (!flag) // 表示flag为假
    7. //float与零值比较
    8. const float EPSINON = 0.00001;
    9. if ((x >= - EPSINON) && (x <= EPSINON) //其中EPSINON是允许的误差(即精度)。
    10. //指针变量与零值比较
    11. if (p == NULL) if (p != NULL)

    【剖析】
    考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写成if(!var),指针变量的判断也可以写成if(!var),上述写法虽然程序都能正确运行,但是未能清晰地表达程序的意思。
    一般的,如果想让if判断一个变量的“真”、“假”,应直接使用if(var)、if(!var),表明其为“逻辑”判断;如果用if判断一个数值型变量 (short、int、long等),应该用if(var==0),表明是与0进行“数值”上的比较;而判断指针则适宜用if(var==NULL),这 是一种很好的编程习惯。
    浮点型变量并不精确,所以不可将float变量用“==”或“!=”与数字比较,应该设法转化成“>=”或“<=”形式。如果写成if (x == 0.0),则判为错,得0分。