C 语言中的数据类型可分为如下几种:
这里我们介绍下基本类型,其他几种类型会在后边几个章节中进行讲解。
一、字符类型与整数类型
字符类型或整数类型所占存储空间的字节大小:
类型
Linux 32
Linux 64
char
short [int]
int
long [int]
long long [int]
字符类型 char 在内存中存储的本质与整数类型是相同的,只是存储大小不同。char 类型可以表示的字符集通常是 ASCII 字符集。
实际上,C语言并没有严格规定 short、int、long 的长度,只做了宽泛的限制:short 的长度不能大于 int,long 的长度不能小于 int。而这些类型的具体大小是由各个操作系统及编译器决定的。
下面我们在代码里实测一下在 linux 64 位系统下,每个类型的具体大小:
#include
int main()
{
printf("char: %ldn",
sizeof(char)); // 1
printf("short: %ldn",
sizeof(short)); // 2
printf("int: %ldn",
sizeof(int)); // 4
printf("long: %ldn",
sizeof(long)); // 8
printf("long long: %ldn",
sizeof(long long)); // 8
return 0;
}
整数类型又分为有符号整数和无符号整数。有符号整数可以表示正数、负数和零,而无符号整数只能表示正数和零,使用 与 关键字标识。
整数类型默认是有符号类型,但 char 比较特殊,其默认是 还是 由编译器决定。
#include
#include
int main()
{
/* 有符号或无符号 char */
printf("char Min: %dn", CHAR_MIN);
printf("char Max: %dn", CHAR_MAX);
/* 有符号 char */
printf("signed char Min: %dn", SCHAR_MIN);
printf("signed char Max: %dn", SCHAR_MAX);
/* 无符号 char */
printf("unsigned char Max: %un", UCHAR_MAX);
printf("signed short Min: %dn", SHRT_MIN);
printf("signed short Max: %dn", SHRT_MAX);
printf("unsigned short Max: %un", USHRT_MAX);
printf("signed int Min: %dn", INT_MIN);
printf("signed int Max: %dn", INT_MAX);
printf("unsigned int Max: %un", UINT_MAX);
printf("signed long Min: %ldn", LONG_MIN);
printf("signed long Max: %ldn", LONG_MAX);
printf("unsigned long Max: %lun", ULONG_MAX);
printf("signed long long Min: %lldn", LLONG_MIN);
printf("signed long long Max: %lldn", LLONG_MAX);
printf("unsigned long long Max: %llun", ULLONG_MAX);
return 0;
}
$ gcc test.c && ./a.out
char Min: -128
char Max: 127
signed char Min: -128
signed char Max: 127
unsigned char Max: 255
signed short Min: -32768
signed short Max: 32767
unsigned short Max: 65535
signed int Min: -2147483648
signed int Max: 2147483647
unsigned int Max: 4294967295
signed long Min: -9223372036854775808
signed long Max: 9223372036854775807
unsigned long Max: 18446744073709551615
signed long long Min: -9223372036854775808
signed long long Max: 9223372036854775807
unsigned long long Max: 18446744073709551615
二、浮点类型
浮点类型所占存储空间的字节大小:
类型
Linux 32
Linux 64
float
long
12
16
下面我们在代码里实测一下在 linux 64 位系统下,浮点类型的具体大小与范围:
#include
#include
int main()
{
printf("float Size: %ldn", sizeof(float));
printf("float Min: %en", FLT_MIN);
printf("float Max: %en", FLT_MAX);
printf("double Size: %ldn", sizeof(double));
printf("double Min: %en", DBL_MIN);
printf("double Max: %en", DBL_MAX);
printf("long double Size: %ldn", sizeof(long double));
printf("long double Min: %Len", LDBL_MIN);
printf("long double Max: %Len", LDBL_MAX);
return 0;
}
$ gcc test.c && ./a.out
float Size: 4
float Min: 1.175494e-38
float Max: 3.402823e+38
double Size: 8
double Min: 2.225074e-308
double Max: 1.797693e+308
long double Size: 16
long double Min: 3.362103e-4932
long double Max: 1.189731e+4932
三、类型转换
C 语言中有两种类型转换:
#include
int main()
{
/* 隐式类型转换 */
int i = 10;
float f = 3.14;
// 隐式将 int 类型转换为 double 类型
double d = i + f;
printf("d = %fn", d);
/* 显式类型转换 */
double e = 3.1415926;
// 显式将 double 类型转换为 int 类型
int g = (int) e;
printf("g = %dn", g);
return 0;
}
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666