C语言基本数据类型
1. 整型(Integer Types)
- char:字符型,用于存储单个字符,也可以作为小整数使用
signed char
:有符号字符型unsigned char
:无符号字符型
- short:短整型
signed short
(或 short
):有符号短整型unsigned short
:无符号短整型
- int:整型
signed int
(或 int
):有符号整型unsigned int
:无符号整型
- long:长整型
signed long
(或 long
):有符号长整型unsigned long
:无符号长整型
- long long:长长整型(C99 标准引入)
signed long long
(或 long long
):有符号长长整型unsigned long long
:无符号长长整型
2. 浮点型(Floating-Point Types)
- float:单精度浮点型
- double:双精度浮点型
- long double:长双精度浮点型
3. 空类型(Void Type)
- void:空类型,表示“没有类型”。主要用于以下三种情况:
- 函数返回类型:表示函数不返回任何值
- 函数参数列表:表示函数不接受任何参数
- 指针类型:
void *
表示通用指针,可以指向任何类型的数据
使用 C 语言输出数据类型的大小和范围:
代码:
#include <stdio.h>
#include <limits.h>
#include <float.h>
int main() {
printf("数据类型\t字节大小\t最小值\t\t最大值\n");
printf("----------------------------------------------------------\n");
printf("char\t\t%zu\t\t%d\t\t%d\n", sizeof(char), CHAR_MIN, CHAR_MAX);
printf("signed char\t%zu\t\t%d\t\t%d\n", sizeof(signed char), SCHAR_MIN, SCHAR_MAX);
printf("unsigned char\t%zu\t\t%d\t\t%d\n", sizeof(unsigned char), 0, UCHAR_MAX);
printf("short\t\t%zu\t\t%d\t\t%d\n", sizeof(short), SHRT_MIN, SHRT_MAX);
printf("unsigned short\t%zu\t\t%d\t\t%d\n", sizeof(unsigned short), 0, USHRT_MAX);
printf("int\t\t%zu\t\t%d\t\t%d\n", sizeof(int), INT_MIN, INT_MAX);
printf("unsigned int\t%zu\t\t%u\t\t%u\n", sizeof(unsigned int), 0, UINT_MAX);
printf("long\t\t%zu\t\t%ld\t\t%ld\n", sizeof(long), LONG_MIN, LONG_MAX);
printf("unsigned long\t%zu\t\t%lu\t\t%lu\n", sizeof(unsigned long), 0, ULONG_MAX);
printf("long long\t%zu\t\t%lld\t%lld\n", sizeof(long long), LLONG_MIN, LLONG_MAX);
printf("unsigned long long\t%zu\t%llu\t%llu\n", sizeof(unsigned long long), 0, ULLONG_MAX);
printf("float\t\t%zu\t\t%E\t%E\n", sizeof(float), FLT_MIN, FLT_MAX);
printf("double\t\t%zu\t\t%E\t%E\n", sizeof(double), DBL_MIN, DBL_MAX);
printf("long double\t%zu\t\t%LE\t%LE\n", sizeof(long double), LDBL_MIN, LDBL_MAX);
printf("void *\t\t%zu\n", sizeof(void *));
return 0;
}
Windows 64 位系统输出结果
数据类型 字节大小 最小值 最大值
----------------------------------------------------------
char 1 -128 127
signed char 1 -128 127
unsigned char 1 0 255
short 2 -32768 32767
unsigned short 2 0 65535
int 4 -2147483648 2147483647
unsigned int 4 0 4294967295
long 4 -2147483648 2147483647
unsigned long 4 0 4294967295
long long 8 -9223372036854775808 9223372036854775807
unsigned long long 8 0 18446744073709551615
float 4 1.175494E-38 3.402823E+38
double 8 2.225074E-308 1.797693E+308
long double 16 3.362103E-4932 1.189731E+4932
void * 8