亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

C - 数据类型

c 中的数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型决定了它在存储中占用了多少空间以及如何解释存储的位模式。

C中的类型可以分类如下 -

Sr.No. 类型和描述
1

基本类型

它们是算术类型,进一步分为:(a)整数类型和(b)浮点类型。

2

枚举类型

它们又是算术类型,用于定义在整个程序中只能分配某些离散整数值的变量。

3

类型 void

类型说明符 void 表示没有可用的值。

4

派生类型

它们包括(a)指针类型,(b)数组类型,(c)结构类型,(d)联合类型和(e)函数类型。

数组类型和结构类型统称为聚合类型。函数的类型指定函数返回值的类型。我们将在下一节中看到基本类型,其他类型将在接下来的章节中介绍。

整数类型

下表提供了标准整数类型的详细信息及其存储大小和值范围 -

类型 存储大小 取值范围
字符 1 字节 -128 到 127 或 0 到 255
无符号字符 1 字节 0 到 255
有符号字符 1 字节 -128 到 127
int 2 或 4 个字节 -32,768 至 32,767 或 -2,147,483,648 至 2,147,483,647
无符号整数 2 或 4 个字节 0 到 65,535 或 0 到 4,294,967,295
2 字节 -32,768 至 32,767
无符号短 2 字节 0 到 65,535
8 字节或(32 位操作系统为 4 字节) -9223372036854775808 至 9223372036854775807
无符号长 8 字节 0 到 18446744073709551615

要在特定平台上获取类型或变量的确切大小,可以使用 sizeof 操作员。表达式 sizeof(type) 产生对象或类型的存储大小(以字节为单位)。下面给出了一个使用limits.h头文件中定义的不同常量获取机器上各种类型大小的示例 -

现场演示
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("CHAR_BIT    :   %d\n", CHAR_BIT);
    printf("CHAR_MAX    :   %d\n", CHAR_MAX);
    printf("CHAR_MIN    :   %d\n", CHAR_MIN);
    printf("INT_MAX     :   %d\n", INT_MAX);
    printf("INT_MIN     :   %d\n", INT_MIN);
    printf("LONG_MAX    :   %ld\n", (long) LONG_MAX);
    printf("LONG_MIN    :   %ld\n", (long) LONG_MIN);
    printf("SCHAR_MAX   :   %d\n", SCHAR_MAX);
    printf("SCHAR_MIN   :   %d\n", SCHAR_MIN);
    printf("SHRT_MAX    :   %d\n", SHRT_MAX);
    printf("SHRT_MIN    :   %d\n", SHRT_MIN);
    printf("UCHAR_MAX   :   %d\n", UCHAR_MAX);
    printf("UINT_MAX    :   %u\n", (unsigned int) UINT_MAX);
    printf("ULONG_MAX   :   %lu\n", (unsigned long) ULONG_MAX);
    printf("USHRT_MAX   :   %d\n", (unsigned short) USHRT_MAX);

    return 0;
}

当您编译并执行上述程序时,它会在 Linux 上产生以下结果 -

CHAR_BIT    :   8
CHAR_MAX    :   127
CHAR_MIN    :   -128
INT_MAX     :   2147483647
INT_MIN     :   -2147483648
LONG_MAX    :   9223372036854775807
LONG_MIN    :   -9223372036854775808
SCHAR_MAX   :   127
SCHAR_MIN   :   -128
SHRT_MAX    :   32767
SHRT_MIN    :   -32768
UCHAR_MAX   :   255
UINT_MAX    :   4294967295
ULONG_MAX   :   18446744073709551615
USHRT_MAX   :   65535

浮点类型

下表提供了标准浮点类型的详细信息,包括存储大小和值范围及其精度 -

类型 存储大小 取值范围 精度
浮点数 4 字节 1.2E-38 到 3.4E+38 6 位小数
双倍 8 字节 2.3E-308 到 1.7E+308 15 位小数
长双倍 10 字节 3.4E-4932 到 1.1E+4932 19 位小数

头文件 float.h 定义了允许您在程序中使用这些值和有关实数二进制表示的其他详细信息的宏。下面的例子打印了一个浮点类型所占用的存储空间和它的范围值 -

现场演示
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>

int main(int argc, char** argv) {

    printf("Storage size for float : %d \n", sizeof(float));
    printf("FLT_MAX     :   %g\n", (float) FLT_MAX);
    printf("FLT_MIN     :   %g\n", (float) FLT_MIN);
    printf("-FLT_MAX    :   %g\n", (float) -FLT_MAX);
    printf("-FLT_MIN    :   %g\n", (float) -FLT_MIN);
    printf("DBL_MAX     :   %g\n", (double) DBL_MAX);
    printf("DBL_MIN     :   %g\n", (double) DBL_MIN);
    printf("-DBL_MAX     :  %g\n", (double) -DBL_MAX);
    printf("Precision value: %d\n", FLT_DIG );

    return 0;
}

当您编译并执行上述程序时,它会在 Linux 上产生以下结果 -

Storage size for float : 4 
FLT_MAX      :   3.40282e+38
FLT_MIN      :   1.17549e-38
-FLT_MAX     :   -3.40282e+38
-FLT_MIN     :   -1.17549e-38
DBL_MAX      :   1.79769e+308
DBL_MIN      :   2.22507e-308
-DBL_MAX     :  -1.79769e+308
Precision value: 6

虚空类型

void 类型指定没有可用的值。它用于三种情况 -

Sr.No. 类型和描述
1

函数返回为 void

C 中有各种函数不返回任何值,或者您可以说它们返回 void。没有返回值的函数的返回类型为 void。例如 void exit (int status);

2

函数参数为 void

C中有各种不接受任何参数的函数。没有参数的函数可以接受 void。例如,int rand(void);

3

指向无效的指针

void * 类型的指针表示对象的地址,但不表示其类型。例如内存分配函数 void *malloc( size_t size ); 返回一个指向 void 的指针,该指针可以转换为任何数据类型。


C语言

  1. 开关类型
  2. C# 变量和(原始)数据类型
  3. C++ 数据类型
  4. C 数据类型
  5. Python 数据类型
  6. Java 数据类型(原始)
  7. C 变量、数据类型、常量
  8. 5 种不同类型的数据中心 [附示例]
  9. 2021 年的 8 种不同类型的云计算
  10. 8 种不同类型的数据泄露示例
  11. C++ 中的数据抽象
  12. C++ 中的数据封装