理论教育 C语言程序设计:基本数据类型

C语言程序设计:基本数据类型

时间:2023-10-20 理论教育 版权反馈
【摘要】:数据的类型不同,它所表达的数据范围、精度和所占据的存储空间均不相同。表2-1基本数据类型1.整型数据类型整型数据分为整型常量和整型变量。程序如下:运行结果:5.2000001111192.311000提示:①float类型数据只有6位精度,double类型数据有16位精度。

C语言程序设计:基本数据类型

在C语言中,为解决具体问题,要采用各种类型的数据。数据的类型不同,它所表达的数据范围、精度和所占据的存储空间均不相同。C语言提供的基本变量类型及其存储空间见表2-1。

表2-1 基本数据类型

1.整型数据类型

整型(int)数据分为整型常量和整型变量。

(1)整型常量

在C语言中,整型常量有3种表示形式,在具体应用中,往往根据需要进行选用。

十进制整数:由数字0~9和正负号表示。如3767,153,-49,0。

八进制整数:由数字0开头,后跟数字0~7表示。如0453,031。

十六进制整数:由0x或0X开头,后跟0~9,a~f,A~F表示。如0x523,0Xef。

(2)整型变量

整型变量的基本类型符为int,要使变量成为整型,必须将其声明为整型。例如:

该程序段将变量a、b定义为整型,并给它们分别赋初值。

提示:

整型数据输出的格式控制符为"%d",有一个输出变量就应有一个格式控制符与之对应。

2.实型数据类型

实型也称浮点型,实型数据大致分为两大类:一类是浮点单精度实型,用float类型标识符表示;另一类是双精度实型,用double类型标识符表示。

(1)实型常量

实型常量,也称浮点型常量、实数或者浮点数。在C语言中,实数只采用十进制格式,它由小数点和数字组成,读者也许会认为这与数学中的表示相同,实际上是有区别的。在C语言中,实数的小数点前允许没有数字,它有两种表示形式。

①十进制数形式:(必须有小数点)如0.63,.893,123.0,0.0。

②指数形式:(e或E之前必须有数字;指数必须为整数)如76.3e3,53E2,5.3e-4。

(2)实型变量

实型变量分为单精度(float)类型和双精度(double)类型,变量使用之前,一定要先定义类型。

【例2.3】单精度和双精度实型变量的应用。

程序如下:

运行结果: 5.200000  1111192.311000

提示:

①float类型数据只有6位精度,double类型数据有16位精度。变量c、d不能定义为单精度类型。

②不管是单精度还是双精度,其输出格式均为"%f"。(www.daowen.com)

③在C语言中,不管是单精度还是双精度实数,输出时小数点后默认保留6位小数。

3.字符型数据类型

(1)字符型常量

字符(char)常量是指用一对单引号括起来的一个字符。字符常量中的单引号只起定界作用并不表示字符本身。例如'a'、'E'、'¥'、'﹩'、'9'。字符常量在计算机内存储时,并不是按其原貌存储的,实际上存放的是该字符的ASCII码值(即一个整数),如字符'a'的值是97,字符'A'的值是65。因此,字符型和整型的关系非常密切,也可把字符型看作一种特殊的整型。事实上,字符型数据和整型数据经常会混合使用。

提示:

①字符常量只包括一个字符,如'AB'是不合法的,因为有两个字符。

②字符常量区分大小写字母,如'a'与'A'是两个不同的字符常量。

有一类特殊形式的字符常量,是以“\”开头的字符序列,称为转义字符。例如,'\n'代表一个“换行”符。转义字符虽然包含两个或多个字符,但它只代表一个字符。编译系统在见到字符“\”时,会接着找它后面的字符,把它处理成一个字符,在内存中只占一个字节。转义字符数目不多,而且每一个转义字符的功能是确定的,转义字符见表2-2。

表2-2 转义字符

通过查ASCII码表及对转义字符的理解,可以知道转义字符'\101'实际上是ASCII码值为65的'A',其中101为八进制数。

思考:8与'8'是否相同?c与'c'是否相同?为什么?

(2)字符型变量

字符变量主要是为了存储字符常量,用类型符号char定义字符变量。字符常量是以ASCII码值的形式存储的,占一个字节的内存空间。字符变量的定义方法为:

char 变量名;

【例2.4】演示字符型数据与整型数据互相赋值的情况。

程序如下:

提示:

①整型变量a是整数97,最终也是以二进制的形式存储于内存中的。这样,整型数据与字符型数据在内存中没有本质区别。

②整型数据与字符型数据输出的形式取决于输出格式符。若以"%d"进行格式控制,则输出整数;若以"%c"进行格式控制,则输出字符。

4.字符串数据类型

字符串(Character String)常量是用双引号括起的字符序列,如“CHINA”“ab”“I love Chongqing!”都属于字符串常量。字符串在存储时,每一个字符元素占一个字节,但是整个字符串占用的空间等于字符串中字符元素的个数加1,因为字符串有一个结束标志“\0”,要占一个字节。如“CHINA”的存储情况如图2-2所示。

图2-2 字符串存储情况

提示:

①C语言中没有专门的字符串变量,一般用字符数组来存放字符串。

②"a"是字符串常量,'a'是字符常量,它们所占的内存空间大小也不一样。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈