C中bool 值与0的比较
int main() { int pass = 0; //0表示假,C90,我们习惯用int表示bool //bool pass = false; //C99 if (pass == 0){ //理论上可行,但此时的pass是应该被当做bool看待的,==用来进行整数比较,不推荐 //TODO } if (pass == false){ //不推荐,尽管在C99中也可行 //TODO } if (pass){ //推荐 //TODO } //理论上可行,但此时的pass是应该被当做bool看待的,==用来进行整数比较,不推荐 //另外,非0为真,但是非0有多个,这里也不一定是完全正确的 if (pass != 1){ //TODO } if (pass != true){ //不推荐,尽管在C99中也可行 //TODO } if (!pass) { //推荐 //TODO } system("pause"); return 0; }
结论:bool类型,直接判定,不用操作符进行和特定值比较
指针类型与"零值"的比较
如何理解类型转化
示例1: “123456”(字符)-->>123456(int型) \\真正的转化:需要编写算法,或使用相关库函数 \\改变内存中的存储的数据 示例2: 11111111111111111111111111111111 signed int(有符号数)-->>unsigned int(无符号数) \\强制类型转化:()强制类型转化操作符 \\不改变内存中存储的数据,只改变对应的类型
指针与0的比较
注:类型一定要对应,避免引起误解
A:看到0,会认为p是int型
C:看到NULL,就会明白p是空指针,是指针类型