您的位置:首页 > 编程语言 > C语言/C++

C语言中的基本数据类型

2012-11-23 16:15 260 查看
从大一学习C语言起,至今10年有余,却对C语言中的基本数据类型始终是一知半解,人云亦云。今天看了C语言之父(Dennis Ritchie)写的程序设计语言的参考手册后,才终于有了一些自己的见解。

简单点说,C语言的数据基本类型,分为两类:算数类型和void 空类型。(void类型常用来说明不返回任何值的函数类型和不传递任何形参的参数类型)

下面主要讲讲算数类型。

算数类型,也分为两类:浮点类型和整型类型。

1.1 浮点类型

三种: long double, double, float

注意:unsigned/signed 不能用于修饰浮点类型。浮点类型可以处理正数,也能处理负数,但是没有无符号浮点型。

上述三者的大小关系:long double (12字节) > double (8字节)> float (4字节)

1.2整数类型

五种:char, short, int, long, 枚举类型(本质就是int型)

unsigned/signed 可以用来修饰整数类型,即分为无符号整形数和有符号整形数。

整数类型可以表示的最大数的大小关系(相同类型的无符号 > 有符号):

unsigned long (4294967295) > long (2147483647)

unsigned long (4294967295) = unsigned int (4294967295) > int (2147483647) > unsigned short(65535 ) > short (32767)> unsigned char (255) > char (127)

为了更好地理解,写了个小程序测试各数据类型的字节大小和则整形数能够表示的值范围。

程序源代码:

#include <stdio.h>
#include <limits.h>

int main()
{
printf("The machine word len is %d\n",__WORDSIZE);
printf("%-12s\t%2s\n","    Type","Size");
printf("%-12s\t%2d\n","long double",sizeof(long double));
printf("%-12s\t%2d\n","double",sizeof(double));
printf("%-12s\t%2d\n","float",sizeof(float));
printf("\n");
printf("%-12s\t%2s\t%10s\t%10s\n","    Type","Size","Min","Max");
printf("%-12s\t%2d\t%10d\t%10u\n","unsigned long",sizeof(unsigned long),0,ULONG_MAX);
printf("%-12s\t%2d\t%10ld\t%10ld\n","long",sizeof(long int),LONG_MIN,LONG_MAX);
printf("%-12s\t%2d\t%10d\t%10u\n","unsigned int",sizeof(unsigned int),0,UINT_MAX);
printf("%-12s\t%2d\t%10d\t%10d\n","int",sizeof(int),INT_MIN,INT_MAX);
printf("%-12s\t%2d\t%10d\t%10u\n","unsigned short",sizeof(unsigned short),0,USHRT_MAX);
printf("%-12s\t%2d\t%10d\t%10d\n","short",sizeof(short),SHRT_MIN,SHRT_MAX);
printf("%-12s\t%2d\t%10d\t%10u\n","unsigned char",sizeof(unsigned char),0,UCHAR_MAX);
printf("%-12s\t%2d\t%10d\t%10d\n","char",sizeof(char),CHAR_MIN,CHAR_MAX);
return 0;
}


运行结果:

rita@rita-desktop:~/work/c_program/exercise/ch2$ ./sizeof_type.exe

The machine word len is 32

Type Size

long double 12

double 8

float 4

Type Size Min Max

unsigned long 4 0 4294967295

long 4 -2147483648 2147483647

unsigned int 4 0 4294967295

int 4 -2147483648 2147483647

unsigned short 2 0 65535

short 2 -32768 32767

unsigned char 1 0 255

char 1 -128 127

rita@rita-desktop:~/work/c_program/exercise/ch2$
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: