C语言 数据类型

c中的数据类型是指用于声明不同类型的变量或函数的扩展系统,变量的类型决定了它在存储中占据多少空间。

No. Types 描述
1 基本类型 它们是算术类型,并且进一步分类为:(a)整数类型和(b)浮点类型。
2 枚举类型 用于定义只能在整个程序中分配某些离散整数值的变量。
3 void类型 类型说明符 void 表示没有返回值。
4 派生类型 它们包括:
)指针类型(Pointer types)
(b)数组类型(Array types)
(c)结构类型(Structure types)
(d)联合类型(Union types)
(e)函数类型(Function types)

数组类型和结构类型统称为集合类型。函数的类型指定函数的返回值的类型。

整数类型

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

Type 存储空间 值范围
char 1个字节 -128至127或0至255
unsigned char 1个字节 0到255
signed char 1个字节 -128至127
int 2或4个字节 -32,768至32,767或-2,147,483,648至2,147,483,647
unsigned int 2或4个字节 0至65,535或0至4,294,967,295
short 2个字节 -32,768至32,767
unsigned short 2个字节 0至65,535
long 8个字节 -9223372036854775808至9223372036854775807
unsigned long 8个字节 0到18446744073709551615

要获取特定平台上类型或变量的确切大小,可以使用 sizeof 运算符,表达式 sizeof(type)产生对象或类型的存储大小(以字节为单位)。

#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

浮点类型

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

类型 存储空间 值范围 精度
float 4字节 1.2E-38至3.4E + 38 6个小数位
double 8字节 2.3E-308至1.7E + 308 15个小数位
long double 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上产生以下输出:

torage size for float : 4 
LT_MAX      :   3.40282e+38
LT_MIN      :   1.17549e-38
FLT_MAX     :   -3.40282e+38
FLT_MIN     :   -1.17549e-38
BL_MAX      :   1.79769e+308
BL_MIN      :   2.22507e-308
DBL_MAX     :  -1.79769e+308
recision value: 6

void 类型

void类型指定没有可用值,它在三种情况下使用-

No. Types 描述
1 函数返回值为void类型 C中有各种函数不返回任何值,或者可以说它们返回void。
2 函数参数为void类型 C中有各种函数,它们不接受任何参数。如, int rand(void);
3 void指针类型 类型为void *的指针表示对象的地址,但不表示其类型。如,内存分配函数 void * malloc(size_t size);返回指向void的指针,该指针可以转换为任何数据类型。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!