C语言基础数据类型

 C语言的基础数据类型:短整型short  整型int  长整型 long  单精度浮点型float  双精度浮点型double  字符型 char

整型:根据存储最高位是否是符号位,可以分有符号整型(signed)和无符号整型(unsigned),默认情况下是有符号整型,如果表示无符号整型,要在类型前面添加unsigned;

浮点型:浮点型主要用来表示带小数部分的数据,当然也可以存放整数;

字符型:字符型主要是用来存储单个字符,用单引号引起来;

为什么要有数据类型的区分?其一是不同的数据我们对数据的处理方式是不同,比如我们可以对数值型的数据进行加减乘除的运算,对字符类型的数据就不适合进行此类的运算;其二有效地利用内存空间,不同的数据类型,存储精度的要求不同,根据数据类型分配相应大小的字节,可以有效地利用存储空间,特别是在嵌入式开发中,内存存储空间是非常有限的。 当然数据类型的区分还有一些其他的好处,大家根据自己的知识理解其中的原因就行。

下面我们使用dev C++,编程看一下不同的数据类型运行时内存分配的字节数以及可以该数据类型可以表示的数据范围:

#include <stdio.h>
#include <limits.h>
#include <float.h>
int main(){
	
	printf("基础数据类型      所占字节数      表示数据范围\n");
	printf("\n");
	printf("    short             %d           %d---%d\n",sizeof(short),SHRT_MIN,SHRT_MAX); 
	printf("    int               %d           %d---%d\n",sizeof(int),INT_MIN,INT_MAX);
	printf("    long              %d           %ld---%ld\n",sizeof(long),LONG_MIN,LONG_MAX); 
	printf("  unsinged short      %d           %u---%u\n",sizeof(unsigned short),0,USHRT_MAX); 
	printf("  unsigned int        %d           %u---%u\n",sizeof(unsigned int),0,UINT_MAX); 
	printf("  unsigned long       %d           %u---%u\n",sizeof(unsigned long),0,ULONG_MAX);  
	printf("    float             %d           %e---%e\n",sizeof(float),FLT_MIN,FLT_MAX);   
	printf("    double            %d           %le---%le\n",sizeof(double),DBL_MIN,DBL_MAX);
    //char输出的是字符对应的ASCII码
	printf("    char              %d           %d---%d\n",sizeof(char),CHAR_MIN,CHAR_MAX);
	
}

运行效果图:

在DEV C++中,光标放在包含文件<limits.h>,按住Ctrl键,点击鼠标,可以打开limits.h头文件,可以看到整型数据表示范围的宏定义,部分如下:


#define CHAR_BIT 8
#define SCHAR_MIN (-128)
#define SCHAR_MAX 127
#define UCHAR_MAX 0xff

#define CHAR_MIN SCHAR_MIN
#define CHAR_MAX SCHAR_MAX

#define MB_LEN_MAX 5
#define SHRT_MIN (-32768)
#define SHRT_MAX 32767
#define USHRT_MAX 0xffffU
#define INT_MIN (-2147483647 - 1)
#define INT_MAX 2147483647
#define UINT_MAX 0xffffffffU
#define LONG_MIN (-2147483647L - 1)
#define LONG_MAX 2147483647L
#define ULONG_MAX 0xffffffffUL
#define LLONG_MAX 9223372036854775807ll
#define LLONG_MIN (-9223372036854775807ll - 1)
#define ULLONG_MAX 0xffffffffffffffffull

同样的操作,光标放在包含文件<float.h>,按住Ctrl键,点击鼠标,可以打开float.h头文件,可以看到浮点数据表示范围的宏定义,部分如下:

	#undef FLT_MAX
	#undef DBL_MAX
	#undef LDBL_MAX
	#define FLT_MAX		__FLT_MAX__
	#define DBL_MAX		__DBL_MAX__
	#define LDBL_MAX	__LDBL_MAX__
	
	
	/* Minimum normalized positive floating-point number, b**(emin - 1).  */
	#undef FLT_MIN
	#undef DBL_MIN
	#undef LDBL_MIN
	#define FLT_MIN		__FLT_MIN__
	#define DBL_MIN		__DBL_MIN__
	#define LDBL_MIN	__LDBL_MIN__

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值