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类型指定没有可用值,它在三种情况下使用-
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的指针,该指针可以转换为任何数据类型。 |
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)