C语言 - 数据类型

C语言 - 数据类型 首页 / C语言入门教程 / C语言 - 数据类型

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

Sr.No.Types & 描述
1

Basic Types

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

2

Enumerated types

链接:https://www.learnfk.comhttps://www.learnfk.com/c-programming/c-data-types.html

来源:LearnFk无涯教程网

用于定义只能在整个程序中分配某些离散整数值的变量。

3

The type void

类型说明符 void 表示没有返回值。

4

Derived types

它们包括

(a)指针类型(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上产生以下输出-

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类型

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

Sr.No.Types & 描述
1

Function returns as void

C中有各种函数不返回任何值,或者可以说它们返回void。

2

Function arguments as void

C中有各种函数,它们不接受任何参数。如, int rand(void);

3

Pointers to void

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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

深入浅出区块链 -〔陈浩〕

Java核心技术面试精讲 -〔杨晓峰〕

大规模数据处理实战 -〔蔡元楠〕

Python核心技术与实战 -〔景霄〕

NLP实战高手课 -〔王然〕

etcd实战课 -〔唐聪〕

程序员的测试课 -〔郑晔〕

超级访谈:对话毕玄 -〔毕玄〕

结构学习力 -〔李忠秋〕

好记忆不如烂笔头。留下您的足迹吧 :)