C语言学习随笔-04 数据类型

发布时间 2024-01-05 18:58:47作者: 啊波波老表

C中的数据类型 :在C语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。 变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。

常用的四中基本数据类型:int 、char、float、double


      ▶ 基本类型:它们是算术类型,如int、char、float、double。
      ▶ 指针类型:它们也是算术类型,用来被定义在程序中只能赋予其一定的离散整数值的变量。
      ▶ 空类型void:类型说明符void表示没有值的数据类型,通常用于函数的返回值。
      ▶ 构造类型(派生类型):包括数组类型、指针类型和结构体类型,数组类型和结构类型统称为聚合类型,函数类型指的是函数返回值的类型。

1、整数类型
        类型                        存储大小                  值范围
        char                        1字节                       -128~127或0~255
        unsigned char         1字节                       0~255
        signed char             1字节                       -128~127
        int                            2个或4个字节           -32768~32768或-2147483648~2147483647
        unsigned int             2或4个字节             0~65353或0~4294967295
        short                        2个字节                   -32768~32768
        unsigned short         2个字节                  0~65535
        long                         4个字节                   -2147483648~2147483647
        unsigned long          4个字节                   0~4294967295


2、 浮点类型

        类型                        存储大小                 值范围                                 精度
        float                         4个字节                   1.2E-38~3.4E+38               6位有效数字
        double                     8个字节                   2.3E-308~1.7E+308           15位有效数字
        long double             16个字节                 3.4E-4932~1.1E+4932       19位有效数字

3、void类型
      void类型指定没有可用的值。它通常用于以下三种情况:
      1、函数返回为空:C中有各种函数都不返回值,或者可以说它们返回空,不返回值的函数的返回类型为空。
           如:void exit(int status)
      2、函数参数为空:C中有各种函数不接受任何参数,不带参数的函数可以接受一void。
           如:int rand(void)
      3、指针指向void:类型位void *的指针代表对象地址,而不是类型。
           如:内存分配函数void *malloc(size_t size);返回指向void的指针,可以转换为任何数据类型


    /* C中的类型转换 */
    //1、隐式类型转换:隐式类型转换是在表达式中自动发生的,无需进行任何明确的指令或函数调用
    //int i = 10;
    //float f = 3.14;
    //double d = i + f;//隐式将int类型转换为double类型

    //2、显式类型转换:显式类型转换需要使用强制类型转换运算符,它可以将一个数据类型的值强制转换为另一种数据类型的值
    //double e = 3.1415926;
    //int i = (int)e;//显式将double类型强制转换为int类型

    //整型类型
    size_t var = 10;
    printf("var = %u \n",var);

    unsigned  int a = 10u;
    unsigned short b = 20u;
    unsigned long c = 30Lu;
    unsigned long long d = 40LLu;

    printf("unsigned int 型数据值为:%u \n",a);
    printf("unsigned short 型数据值为:%hu \n", b);
    printf("unsigned long 型数据值为:%lu \n", c);
    printf("unsigned long long 型数据值为:%llu \n", d);
    
    return 0;
}