C语言数据类型详解

本文详细介绍了C语言的数据类型,包括头文件、源文件等文件类型,以及整型、浮点型、布尔型、字符型等基本数据类型的取值范围和特点。讨论了变量的定义、初始化和使用规则,强调了选择合适数据类型的重要性。同时,文章还涵盖了常量、运算符、格式化输出和类型转换等内容,为理解和使用C语言提供了基础指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

C语言的文件类型:

    .h    头文件

    .c    源文件

    .i      预处理文件

    .o   目标文件

    .s    汇编文件

    .a     静态库文件

    .so   动态库文件,相当于windows系统里的.dll

    .gch    头文件的编译结果,没什么用,建议立即删除

C语言的基本数据类型:

为什么划分数据类型:

    数据存储计算机中需要耗费存储空间(内存、硬盘),在编程语言中把数据按照使用范围、特点划分为不同的种类,根据要解决的问题选择合适的数据,这样可以节约存储空间、提高运算速度。

   

整型:不带小数点的数据

有符号整型:最高位的二进制位用来表示正负,0代表整数,1代表负责。

                         由于编程时使用的较多,所以编译器允许 signed 不加就代表加,可以省略。

     

signed char         1       -128 ~ 127

signed short        2       -32768 ~ 32767

signed int            4       -2147483648 ~ 2147483647

signed long         4|8   

signed long long    8       -9223372036854775808 ~ 9223372036854775807

无符号整型:所以有二进制位都用来表示数据,因此只能表示正数。

                       在使用时 unsigned 关键字不能省略,所以比较麻烦,C语言的标准委员会为了我们方便使用无符号整型,在stdin.h头文件中对无符号整型进行了重定义。

                       uint8_t,uint16_t,uint32_t,uint64_t

           unsigned char       1       255

        unsigned short      2       65535

        unsigned int           4       4294967295

        unsigned long       4|8

        unsigned long long   8       18446744073709551615

             注意:signed long、unsigned long 在32位Linux系统下是4字节,64位Linux系统下是8字节。windows系统都是4字节。

浮点型:小数点是浮动,也就是带小数点的数据。

                 小数后六位有效,采用科学计算法存储,由:符号位+底数位+指针数构成,由于格式比较特殊所以在使用时需要进行格式转换,所以运算速度比整型慢,编程时尽量少用。

        单精度:float           4

        双精度:double          8

        高精度:long double     12|16

        if(0.000001 > f && f > -0.000001) // 判断"零值"

布尔:由于先出现的C语言,后有的布尔类型,所以在设计C语言时没有设计布尔类型,之后C语言以打补丁的方式增加了布尔类型。

             使用布尔类型时需要包含stdbool.h头文件,才能使用 bool true false

bool     1字节

ture      4字节    ---->整数1

false     4字节    ---->整数0

printf("%d  %d   %d\n",sizeof(bool),sizeof(ture),sizeof(false));

用gcc编译器编译输出结果 1  4   4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值