IT,即为Information Technology,中文含义为信息技术。在当今这个信息时代,信息就是财富,信息就是社会发展的动力。信息离不开数据,银行往来的金额账目,娱乐时听到的好听的音乐,甚至是远程医疗时病人的血压,这些都是数据。程序离不开数据,如果没有了数据,程序设计无从谈起。
这里,我们用一个实际的程序来开始对C语言中基本数据类型的了解。
====================================================================================================
/* savemoney.c -- 银行存钱 */
#include <stdio.h>
int main(void)
{
float amount;// 存入的金额
int years;// 保存时间
printf("你要存入多少钱?\n");
scanf("%f", &amount);
printf("你要保存多少年?\n");
scanf("%d", &years);
printf("您好,这笔钱总共%f元,您要存%d年。\n", amount, years);
return 0;
}
====================================================================================================
在这个程序中,我们主要用到了两种基本数据类型:float和int。前者是单精度浮点类型,后者是整型。
在程序设计中经常会提到属于常量变量和变量。常量,顾名思义就是值为恒定的量,比如圆周率π,还有一年中月份的数量;变量,就是说这个值是发生变化的,比如每年的降水量,北京市空气质量优秀的天数。
要想告诉程序我们想用哪种数据类型,这个时候我们就需要用到数据类型关键字了。下面是C语言中的数据类型关键字
| K&R关键字 | C90关键字 | C99关键字 |
|---|---|---|
| int | signed | _Bool |
| long | void | _Complex |
| short | _Imaginary | |
| unsigned | ||
| char | ||
| float | ||
| double |
K&R C中提到的数据类型有int、long、short、char、float、double。这些类型可以分为两类,一类是整数类型,另一类时浮点类型。CPU对这两大类型的处理方式是不同的,数据在内存中的表示方式也是不同的。
整数类型包括int、long、short、char,他们之前的区别在于表示数据的范围是不同的。
char类型一般表示由1个字节表示的数据,范围是-128到127,共256个数。另外,char类型还表示字符类型。
short类型一般表示由2个字节表示的数据,范围是-32768到32767,共65536个数。
int类型一般表示由4个字节表示的数据,范围是-2147483648到2147483647,共4294967296个数。
long类型一般表示为由8个字节表示的数据,范围是-9223372036854775808到9223372036854775807,共18446744073709551616个数。
需要注意的是,C语言是个可移植的程序设计语言。其可移植性表现的一个方面是,其基本数据类型表示的数的范围是随着环境的变化而变化的。比如说,在现在的机器上int类型表示由4个字节表示的数据,但在以前的机器上int类型可能是表示由2个字节表示的数据。虽然C语言标准并没有明确定义类型范围,但它却规定short类型的范围大于等于char类型,小于等于int类型;long类型大于等于int类型。而int类型的字节数一般为计算机的字长的字节数。在某个具体实现上,整数数据类型的范围是确定的,它定义在头文件<limits.h>中。
关键字unsigned说明所表示的数是个无符号整数类型。比如,如果int类型表示从-2147483648到2147483647的数,那么unsignedint表示从0到4294967295的数。
浮点类型包括float类型和double类型,他们之间的区别主要是表示数据的精度不同。
float类型必须至少能表示6位有效数字,取值范围至少10的-37次方到10的+37次方。
double类型表示的数的范围大于或等于float类型,但它必须至少表示10位有效数字。
在C90中又定义了signed和void类型。signed表示整数是个有符号整数类型。其实在默认情况下,整数类型都指的是有符号整数类型。也就是说,在编写程序的时候,signed是可以省略的。void表示数据是个空类型,void类型一般用在函数的无返回值的情况下。
在C99中又定义了_Bool类型、_Complex类型和_Imaginary类型。
_Bool类型是一种无符号类型,它只包含两个值0和1,对应于false(假)和true(真)。
_Complex类型和_Imaginary类型分别提供了对复数和虚数的支持。
总结一下,我们现在可以用C提供的数据类型表示一般情况下使用到的数据。
整数类型范围从小到大,依次为char、short、int、long。(最新的C标准支持的整数类型不仅仅为这4个,其他的为多个long与int之间的组合,比较复杂不在此说明。)
浮点类型范围从笑道大,依次为float、double。(最新的C标准支持的整数类型不仅仅为这2个,比较复杂不在此说明。)
布尔类型为_Bool。
复数类型为_Complex。
虚数类型为_Imaginary。
需要注意的是,各个编译器对C标准的支持情况有所不同,后三者某些编译器可能仍然不支持。
本文介绍C语言中基本数据类型,如float、int、char等,并通过一个实际程序展示了如何在程序设计中运用这些数据类型进行计算与存储。
7886

被折叠的 条评论
为什么被折叠?



