Linux C语言学习 -- 数据类型

一、C语言数据类型的分类

二、基本数据类型

1. 逻辑类型:

        只有两个量true和falsa,表示逻辑真值和逻辑假值。

        bool类型:

        使用时需要引入头文件:<stdbool.h>  实际上为_Bool,直接引用_Bool则不需要头文件。

        

例如:

        bool a = -1;

        if(a){

                    x = 12;

}else{

                x = 18

}

因为a = -1为非零数值,逻辑为真,所以给x赋值为12,而不是18。

 2.char类型

 

        使用char数据类型的变量需要特别注意,防止数据超出值域,思考下列几个语句:

        char c1 = 128;          //出错,数据越界,实际输出-128(反码补码);

        char c1 = 129;           //出错,数据越界,实际输出-127;

        unsigned char c1 = -1;                //出错,数据越界,实际输出255.

        头文件<limits.h>可以查询数据类型值域。

3.short类型

 4.int型

5.long型

 

 6.浮点类型:

三、强制数据类型的转换: 

        强制数据类型的转换是指采用某种方式将某种数据类型强制转换成指定的数据类型。        

        包括显式的数据类型转换和隐式的数据类型转换。

例如:

        int a = 32, b = 0;

        float c = 23.44, d = 2.66;

        b = (int)(a + b +c);         //输出b=58

        会造成精度的丢失。

        强制类型转换符后面的表达式如果存在复杂运算,就一定要用小括号括起来。

        强制类型转换符是一种不安全的转换,一般都是将高级类型转换成低级类型,要丢失数据的精度;强制类型转换不会改变表达式中变量的数据和其原本的值。

自动类型转换:在程序运行的时候,低精度的数据会自动向高精度的数据进行这类型转换,数据的进度不会丢失

 自动类型转换:
一般为 低精度 向 高精度 转换
(可按字节大小顺序记,有低精度到高精度的数据类型)
char - short - int - long - float -double .....
 
强制类型转换:
常应用于:指针,因为指针的类型不管如何转换,它的精度都是不会丢失的。
当用于 高精度 向 低精度 强制转换时, 数据会丢失!
如:float a = 3.14;     (int) a ->  a = 3 , 数据丢失!   
 
判断输出类型的方法:
若为 同精度 运算,则输出仍为同精度(强制转换除外)。如: int/int -> int 
若为 不同精度 计算,则输出为更高的进度(强制转换除外)。如: int/float -> float
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

热爱永不消散

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值