龙空技术网

C语言中各种数据类型与"0"的比较详解

技术小企鹅 312

前言:

现时咱们对“0在c语言中的意思”大体比较重视,你们都想要学习一些“0在c语言中的意思”的相关资讯。那么小编也在网摘上收集了一些关于“0在c语言中的意思””的相关内容,希望小伙伴们能喜欢,咱们快快来了解一下吧!

前言

我们学习C语言的时候在条件分支判断if语句的时候总会涉及到很多的比较,判断条件是否为真,很多时候我们是直接与0进行比较,今天我想讲一下关于各种数据类型和0比较的的注意事项,我们的基本数据类型包括(int char bool float指针等变量)。

一般我们用if语句判断一个条件是真的还是假,我们直接使用if(var)或者if(!var)表示这是逻辑判断真还是假,如果我们用if判断一个数值如(short 、int 、long等),这时候我们就应该用if(var == 0)表示是与0进行数据值的判断,对于指针来说,我们最好是使用if(var == NULL),最后值得注意的一点是我们的浮点型,因为我们的浮点型在存储的时候受精度影响你并不知道它的值比如你 float a=1;它在内存中可能是 1.00000241,和我们系统的精度有关系,并不是一个精确的数。所以在比较或者是判断我们浮点数的时候我们就需要把(==)、(!=)换成(>=)、(<=)的形式。

int类型数据和0比较

整型数据的比较是相对简单不复杂的我们上面讲到的确定数值的时候我们用(==)和(!=)例如:

if(a == 0)或者 if(a != 0)

不建议写成:if(a)或者if(!a),因为你这样写会让读你代码的人以为你的a是一个bool值。

在这里想说一下我们代码的规范和可读性性问题,一般我们的符号和变量或者表达式之间有一个空格会让你的代码有更高的可读性,当然如果不加影响也不是很大,看自己个人的编程习惯吧,我个人平时写普通测试代码的时候是不习惯加的但是,写一些比较正式的代码的时候还是会乖乖加上。

float类型与0比较

float类型。不管是单精度还是双精度类型。由于在存储的时候并不是具体的,会和存入的数据有偏差,在计算机当中,大多数浮点数据都是无法精确的去表达的。我们应该定义一个范围然后使用(>=)、(<=)来判断比如:

const float N=0.0001;

if( (a>=N) && (a<=N)

不建议写成:

if(a == 0)或者 if(a != 0)

有时候你写成下面的格式也没什么问题,但是你要记住的是浮点数的精度误差,如果在系统精度很高的机器中你的代码可能就存在判断错误的情况了,所以我们还是尽可能养成一个良好的代码编写规范。

bool类型与0比较

建议写成:if(a)或者 if(!a)

不推荐写成下面的几种形式:

1、if(a ==TRUE)

2、if(a == FALSE)

3、if(a == 1)

4、if(a == 0)

指针类型与0比较

指针类型建议是和NULL比较而不是0

建议写成:

if(p == NULL) 或者 if(p != NULL)

不建议写成:

if(p == 0) 或者if(p != 0),这样会让人误解是整型变量。

if(p)或者if(!p),这样的代码可能会使读者误认为是bool 类型。

总结

在比较的代码中需要注意的是我们很多刚刚编写代码的时候经常会把我们的“=”和“==”混淆起来,这也不奇怪,因为我们计算机中"="是赋值的意思,双等号“==”才表示比较是否相等,我自己在刚刚接触的时候是栽过跟头的,经常把 if(c==0)写成if(c=0),在这里提示一下各位伙伴要注意哦。

标签: #0在c语言中的意思 #c语言中0和0一样吗