资源描述
第二讲 数据类型例 2.1】计算圆的面积,半径为 5 cm。main( ) float r, area ;r=5 ;area=3.14*r*r;printf (%fn , area) ;程序中用到的数据:r、area、5、3.14 对数据进行的运算: * 、 =计算机操作处理时,要完成以下工作:在内存中给半径r和运算结果area开辟存储空间,存放它们的值。应该留多大的 地方来存放它们的值? 数据 5 和 3.14 与 r 、 area 不同,它们是在编写程序时就给出确定的值,在运算 过程中不会改变。这样的数计算机怎么处理? 对整数 5 和小数 3.14 ,计算机存放时是否有区别?C语言数据类型本章讨论基本类型数据/ 整型 空型(浮点型)单精度型构造类型数组类型结构体类型 共用体类型 枚举类型指针类型-8-261、常量所谓“常量”,就是指在程序执行过程中,其值不能改变的量。 C 语言里有如下几种常量:整 型常量、实型常量、字符常量和字符串常量。一个常量的类型,由它的书写格式确定,无须 事先加以说明。使用时,在程序需要的地方直接写出来即可。1) 整型常量 值为整数的常量称为“整型常量”,简称“整常量”,它包括正整数、零和负整数。整常量的数据类型当然是整型(int)的。整常量可以以十进制、八进制和十六进制的书写形式出现在C语言的程序里(1)十进制整常量的书写形式十进制整常量就是通常意义下的整数。(2)八进制整常量的书写形式八进制整常量是在通常意义下的八进制整数前加上前缀数字“0”构成。(3)十六进制整常量的书写形式十六进制整常量是在通常意义下的十六进制整数前加上前缀“Ox”(数字0和小写字母x) 构成。2)实型常量值为实数的常量称为“实型常量”,简称实常量”。在C语言中,整常量有十进制、八进 制和十六进制 3 种书写形式。但是对于实常量而言,只有十进制一种书写形式,没有八进制 和十六进制的实常量。在 C 语言中表示十进制的实常量,可以采用一般形式与指数形式两种办法。(1)一般形式的实常量一般形式的实常量就是通常意义下的实数,它由整数、小数点和小数3 部分构成。(2)指数形式的实常量指数形式的实常量由尾数、小写字母e或大写字母E以及指数3部分构成。 可以用不同的尾数和指数,表示同一个实数。如果尾数部分被写成小数点前有且仅有一 位非 0 数字,那么就称它为“规范化的指数形式”。3)字符常量在 C 语言中,用单引号前、后括住的单个字符被称为“字符常量”。(1)直接形式直接形式即在单引号内直接书写字符。例如a、b、=、+、?(2)八进制形式八进制形式格式为ddd,其中“ddd”表示13位八进制数,其值代表的是某字 符的ASCII值。“”是转义字符。八进制形式可以表示所有的字符。例如101(等于A), 007 (响铃控制字符),343(表示ASCII值为227的字符n )。十六进制形式(3)十六进制形式格式为xhh,其中“hh”表示12位十六进制数,其值代表的是某 字符的ASCII值,“”是转义字符,“x”是十六进制前缀。十六进制形式可以表示所有的字符。 例如x41(等于A),x07(响铃控制字符),xe3(表示ASCII值为227的字符n )。( 4)转义字符 转义字符是一种特殊的字符常量。转义字符以反斜线“”开头,后跟一个或几个字符。 转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。4)字符串常量在 C 语言中,用双引号前、后括住的零个或若干个字符,被称为“字符串常量”,简称“字符 1=1=1 ”串” 。一个字符串中所包含的字符个数,称为该“字符串的长度”。在 C 语言中,总是为每一个字符串多分配 1 个字节来存放它。在顺序存放完字符串里 的字符后,往最后一个字节里存放一个ASCII码值为0的字符,用以标识该字符串的结束。5)符号常量以标识符来代表的常量 事先编译预处理命令define定义编译时先由系统替换为它所代表的常量,再进行编译例如:#define LEN 2.5main( ) float a,b;a= 2*3.14 *LEN;b=3.14*LEN*LEN;printf(a=%f,b=%fn,a,b);2、C 语言的变量. 变量的有关概念 在程序运行过程中,其值改变的数据,称为变量,变量用标识符表示,称为变量名 变量必须“先定义后使用” 系统为变量分配存储单元,存储变量的值。 编写程序时通过变量名来存、取变量值。 变量定义的一般格式:数据类型说明符 变量列表;例如: int i, j;long k, m;float x,y;char ch1,ch2; 必须使用合法的标识符作变量名 不能使用关键字为变量命名21 整型数据 整型数据的类型- 基本整型数据int,分配2 Byte- 短整型数据short int,分配2 Byte- 长整型数据long int,分配4 Byte 整型数据均以二进制补码形式存储计算机中正、负数的表示 正数:原码、反码、补码相同 负数:原码符号位为 1,数值为绝对值的二进制数。 109 11101101原反码符号位为 1,数值为绝对值的二进制数各位变反。 10910010010反 补码符号位为 1,数值为绝对值的二进制数各位变反加1。10910010011补有符号和无符号整型数据:- 有符号的整型数据signed int- 无符号的整型数据unsigned int 区别是将最高位看作符号位还是数据位例如: 1111 1111 1010 1000 作为有符号数使用时,最高为符号位为负数,值是:- 88(再求一次补) 作为无符号数使用时,最高为数据位 为无符号的数,值是:65448 例如:main( ) unsigned int m;m= 65448;printf(nm=%dn,m);printf(m=%un,m);整型数据的类型及规定:类型名称类型符bit取值范围整型(短整型)signed int signed short int16-215 215-1(-3276832767 )无符号整型unsigned int160 216-1(065535 )长整型signed long int32-231 231- 1斗峦口.申石开Uunsigned long int320 232-1无符号长整型方括号表示可选项 int 分配 2 Byte, long 分配 4 Byte22 实型数据 1实型数据的类型- 单精度实型数据float,分配4 Byte- 双精度实型数据double,分配8 Byte2实型数据的存储小数符合位小数部分指数符号位指数部分实型数据的类型及规定类型类型符Byte绝对值的范围有效数字单精度型float410-37 103878位双精度型double810-307 103081516位 C 标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位 数。 一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数 多,则表示的数据范围更大。23 字符型数据字符型数据char,分配1 Byte字符型数据是指字母、数字、各种符号等用ASCII值表示的字符例如a是一个char类型数据,称作字符常量,存储:0 1 1 0 0 0 0 1关于变量的数据类型说明,有如下几点要注意。(1)切记任何一个变量都要遵循“先说明后使用”的原则。(2)在一个变量说明语句中,可以同时说明多个相同数据类型的变量。(3)变量数据类型说明可以放在所有函数的外面,也可以放在函数里面。(4)在同一个函数中说明变量时,变量名不能相同。(5)在C语言中,只有字符串常量,没有字符串型的变量。之所以这样,是因为C认为任 何一种数据类型的长度都应该是一定的,但字符串的长度却不能确定,所以不能有这种数据 类型的变量。
展开阅读全文