C语言有5种基本数据类型:字符、整型、单精度实型、双精度实型和空值型。尽管这几种类型数据的长度和范围随处理器的类型和C语言编译程序的实现而异,但以bit为例,整数与CPU字长相等,一个字符通常为一个字节,浮点值的确切格式则根据实现而定。对于多数32位的计算机,表2-1给出了5种数据的长度和范围。
表2-1 基本类型的字长和范围
类 型 |
长度(bit) |
范 围 |
char(字符型) |
8 |
0~255 |
int(整型) |
32 |
-2 147 483 648~2 147 483 647 |
Float(单精度型) |
32 |
约精确到6位数 |
double(双精度型) |
64 |
约精确到12位数 |
void(空值型) |
0 |
无值 |
除void类型外,基本类型的前面可以有各种修饰符。修饰符用来改变基本类型的意义,以便更准确地适应各种情况的需求。修饰符如下:
· signed(有符号)。
· unsigned(无符号)。
· long(长型符)。
· short(短型符)。
short只能修饰int,且short int可省略为short。
long只能修饰int和double,修饰为long int时,可省略为long。
unsigned和signed只能修饰char和int,一般情况下,char和int默认为signed型。实型数float和double总是有符号的,不能用unsigned修饰。
【程序2-1】在32位计算机环境下输出各数据类型的数据所占用的内存空间字节数,其中sizeof()函数返回指定的数据类型占用的内存空间字节数。
/* 文件名:chap02_1.cpp */
#include <stdio.h>
void main(){
printf("int:%d\n",sizeof(int));
printf("unsigned int:%d\n",sizeof(unsigned int));
printf("signed int:%d\n",sizeof(signed int));
printf("short int:%d\n",sizeof(short int));
printf("unsigned short int:%d\n",sizeof(unsigned short int));
printf("signed short int:%d\n",sizeof(signed short int));
printf("long int:%d\n",sizeof(long int));
printf("unsigned long int:%d\n",sizeof(unsigned long int));
printf("signed long int:%d\n",sizeof(signed long int));
printf("float:%d\n",sizeof(float));
printf("double:%d\n",sizeof(double));
printf("char:%d\n",sizeof(char));
printf("unsigned char:%d\n",sizeof(unsigned char));
printf("signed char:%d\n",sizeof(signed char));
}
程序运行结果:
int:4
unsigned int:4
signed int:4
short int:2
unsigned short int:2
signed short int:2
long int:4
unsigned long int:4
signed long int:4
float:4
double:8
char:1
unsigned char:1
signed char:1