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

作者 : admin 本文共2094个字,预计阅读时间需要6分钟 发布时间: 2024-06-5 共3人阅读

继续学习数据类型。
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、溢出
      每一种数据类型都有其表示范围,如果存放的数值超出了这个范围(小于最小值或大于最大值),就需要更多的二进制位存储,否则会发生溢出。大于最大值,叫做向上溢出;小于最小值,叫做向下溢出。溢出应当避免,这也是不同数据类型存在的意义所在。各种数据类型的数值范围在不同系统中可能是不同的,运行下面的小程序可以知道你的系统各种数据类型的数值范围。

       代码如下:

#include
#include //使用C语言定义的代表数值范围的宏需要包含这个头文件
int main(void)
{
    printf("signed char 的最小值和最大值
"); //有符号字符型
    printf("%d 至 %d
", SCHAR_MIN,SCHAR_MAX);
    printf("short 的最小值和最大值
"); 
    printf("%d 至 %d
", SHRT_MIN,SHRT_MAX);
    printf("int 的最小值和最大值
");
    printf("%d 至 %d
", INT_MIN,INT_MAX);
    printf("long 的最小值和最大值
");
    printf("%d 至 %d
", LONG_MIN,LONG_MAX);
    printf("long long 的最小值和最大值
");
    printf("%lld 至 %lld
", LLONG_MIN,LLONG_MAX);
    printf("unsigned char 的最大值
");//无符号字符型
    printf("%d
", UCHAR_MAX); 
    printf("unsigned short 的最大值
"); //无符号short型
    printf("%i
", USHRT_MAX);
    printf("unsigned int 的最大值
"); //无符号int
    printf("%lu
", UINT_MAX);
    printf("unsigned long 的最大值
"); //无符号long
    printf("%lu
", ULONG_MAX);
    printf("unsigned long long 的最大值
"); //无符号longlong
    printf("%llu
", ULLONG_MAX);
    getchar(); //阻塞程序
    return 0;
}

本机上的运行结果:

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

本站无任何商业行为
个人在线分享 » C语言从头学16——数据类型(二)
E-->