• C语言从头学16——数据类型(二)


    继续学习数据类型
    3、浮点型数float
          有小数点的数值称为浮点数。浮点数用 float 进行声明。 float 类型占用4个字节(32位),float 类型表示十进制数时至少能够提供6位有效数字,例如:
          float x = 1020.25;
          如4字节浮点数表示范围不足使用时,C语言提供了8字节浮点数类型 double,表示十进制数时至少能提供13位有效数字,例如:
          double y=0.1234567890123;
         C 语言可以使用科学计数法表示浮点数,使用字母 e 来分隔小数部分和指数部分。例如:
          double z = 1.23456e+3; // 与1.23456*10^3等价
    4、布尔类型
          在C语言中,使用 int(整型)的0表示"假",其余整型数表示 "真"。头文件 stdbool.h 定义了布尔类型,使用 bool表示布尔类型 ,并且定义了 true 代表"真"、 false 代表"假"。加载这个头文件后,就可以使用bool类型了,增加了代码的可读性。例如:
           bool myBool=true;
           虽然加载了这个头文件,但我们仍继续使用0代表"假",其余非零整数代表"真"是没有问题的,且在处理许多函数返回值时,"真" 还确需使用非零整数表示。
    5、字面量的类型
           字面量指的是代码里面直接出现的值,也就是写在程序里的数值(字符串常量中的数值除外)。例如:
           int x=450;
           这个450就是字面量。对于整型字面量,计算机按照占用字节数由短到长的规则为字面量指定类型,先是int,不足用long、再不足longlong。
    6、字面量后缀
          编程人员有时希望将某整型数指定为某特定类型,可以通过加字面量后缀的方式进行。例如:
          int x=100L; //在100后边加上long的后缀符号"L"或"l"
          常用的字面量后缀有:
          f 和 F : float 类型后缀
          l 和 L :分两种情况,放到整数后边是 long int;放到小数后边long double
          ll 和 LL :Long Long 类型后缀
          u 和 U :表示 unsigned int,u或U也可以放到f或F、l或L后边称为无符号某类型
    7、溢出
          每一种数据类型都有其表示范围,如果存放的数值超出了这个范围(小于最小值或大于最大值),就需要更多的二进制位存储,否则会发生溢出。大于最大值,叫做向上溢出;小于最小值,叫做向下溢出。溢出应当避免,这也是不同数据类型存在的意义所在。各种数据类型的数值范围在不同系统中可能是不同的,运行下面的小程序可以知道你的系统各种数据类型的数值范围。

           代码如下:

    1. #include
    2. #include //使用C语言定义的代表数值范围的宏需要包含这个头文件
    3. int main(void)
    4. {
    5. printf("signed char 的最小值和最大值\n"); //有符号字符型
    6. printf("%d 至 %d\n", SCHAR_MIN,SCHAR_MAX);
    7. printf("short 的最小值和最大值\n");
    8. printf("%d 至 %d\n", SHRT_MIN,SHRT_MAX);
    9. printf("int 的最小值和最大值\n");
    10. printf("%d 至 %d\n", INT_MIN,INT_MAX);
    11. printf("long 的最小值和最大值\n");
    12. printf("%d 至 %d\n", LONG_MIN,LONG_MAX);
    13. printf("long long 的最小值和最大值\n");
    14. printf("%lld 至 %lld\n", LLONG_MIN,LLONG_MAX);
    15. printf("unsigned char 的最大值\n");//无符号字符型
    16. printf("%d\n", UCHAR_MAX);
    17. printf("unsigned short 的最大值\n"); //无符号short型
    18. printf("%i\n", USHRT_MAX);
    19. printf("unsigned int 的最大值\n"); //无符号int
    20. printf("%lu\n", UINT_MAX);
    21. printf("unsigned long 的最大值\n"); //无符号long
    22. printf("%lu\n", ULONG_MAX);
    23. printf("unsigned long long 的最大值\n"); //无符号longlong
    24. printf("%llu\n", ULLONG_MAX);
    25. getchar(); //阻塞程序
    26. return 0;
    27. }

    本机上的运行结果:

    signed char 的最小值和最大值
    -128 至 127
    short 的最小值和最大值
    -32768 至 32767
    int 的最小值和最大值
    -2147483648 至 2147483647
    long 的最小值和最大值
    -2147483648 至 2147483647
    long long 的最小值和最大值
    -9223372036854775808 至 9223372036854775807
    unsigned char 的最大值
    255
    unsigned short 的最大值
    65535
    unsigned int 的最大值
    4294967295
    unsigned long 的最大值
    4294967295
    unsigned long long 的最大值
    18446744073709551615

  • 相关阅读:
    Java最基础模糊知识点快过
    2023NOIP A层联测19-多边形
    IT项目管理成功的技巧通常有哪些?
    中介者模式:简化对象间的通信
    模式植物GO背景基因集制作
    2022算法分析与练习十六
    负数的右移
    原理Redis-动态字符串SDS
    计算机基础之整数和浮点数
    小白入门——Python标准库和第三方库简介
  • 原文地址:https://blog.csdn.net/m0_72128260/article/details/139480740