c语言的基本数据类型及取值范围(C语言中各种数据类型与)

前言我们学习C语言的时候在条件分支判断if语句的时候总会涉及到很多的比较,判断条件是否为真,很多时候我们是直接与0进行比较,今天我想讲一下关于各种数据类型和0比较的的注意事项,我们的基本数据类型包括(int char bool float指针等变量),今天小编就来说说关于c语言的基本数据类型及取值范围?下面更多详细答案一起来看看吧!

c语言的基本数据类型及取值范围(C语言中各种数据类型与)

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),在这里提示一下各位伙伴要注意哦。

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页