基本数据类型表达式与运算符.ppt
《基本数据类型表达式与运算符.ppt》由会员分享,可在线阅读,更多相关《基本数据类型表达式与运算符.ppt(83页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C语言程序设计教程语言程序设计教程第二章第二章 基本数据类型、运算基本数据类型、运算符与表达式符与表达式1C语言程序设计教程语言程序设计教程本章要求:本章要求:C语言的数据类型语言的数据类型各种类型数据的定义方法各种类型数据的定义方法常量与变量常量与变量各种类型数据的混合运算各种类型数据的混合运算强制类型变换强制类型变换重点:重点:数据类型;数据类型;数据的定义方法;数据的定义方法;各种类型数据的混合运算各种类型数据的混合运算2C语言程序设计教程语言程序设计教程2.1 C语言的数据类型 C语言支持的数据类型非常丰富,它包括:基本数据类型,构造数据类型,指针类型,空类型四大类 数据类型数据类型构
2、造类型构造类型指针类型指针类型*空空类类型型(无无值值类类型型)voidvoid枚举类型枚举类型 enum enum数组类型数组类型 结构体类型结构体类型 struct struct共用体类型共用体类型 union union基本类型基本类型整型整型 int int字符型字符型 char char实型(浮点型)实型(浮点型)单精度实型单精度实型 float float双精度实型双精度实型 double3C语言程序设计教程语言程序设计教程2.2 常量、变量和标识符常量、变量和标识符对于基本数据类型量,根据其取值是否可改变可分为常量和变量两种。1.常量常量:其值不发生改变的量称为常量。常量可与数据
3、类型结合起来分类。例如,整型常量、实型常量、字符型常量、字符串常量和符号常量。在编程过程中,常量是可以不经说明而直接引用的,而变量则必须要先定义后使用。常用常量如下所示:整型常量:25、0、-7;实型常量:5.6、-6.9;字符常量:a、b。4C语言程序设计教程语言程序设计教程2.标识符标识符是用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。用一个标识符来表示一个常量,称之为符号常量。符号常量在使用之前必须先定义,其一般形式为:#define 标识符 常量其中#define也是一条预处理命令(预处理命令都以#开头),称为宏定义命令其功能是把该标识符定义为其后的常量值。
4、一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。一般习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。5C语言程序设计教程语言程序设计教程例2.1符号常量的使用。#define LENGTH 30#include void main()int area,width;width=10;area=width*LENGTH;printf(“area=%d”,area);程序运行结果:程序运行结果:area=300程序分析:程序分析:使用符号常量参与运算,符号常量与变量不同,它的值使用符号常量参与运算,符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。使用符
5、号常量在其作用域内不能改变,也不能再被赋值。使用符号常量的好处是:含意清楚;能做到的好处是:含意清楚;能做到“一改全改一改全改”。6C语言程序设计教程语言程序设计教程3.变量变量,其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。变量在使用之前必须进行定义即为每个变量取一个名称(变量名),同时规定它的数据类型,以便编译时根据数据类型分配存储空间。C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须是字母或者下划线。下面标识符的写法是合法的,可以作为变量名使用。Sum,Class_2,data,wang_ming,_high,a8,AREA,year
6、_month_day下面是不合法的标识符和变量名:*data1,99sum,%yuan,$BGss,MR.tom,a1b1,s/t注意,编译系统区分大小写,将它们认为是两个不同的字符。所以,max和MAX是两个不同的变量。7C语言程序设计教程语言程序设计教程注意建议变量名的长度最好不要超过8个字符。在选择变量名和其它标识符时应“见名知意”。要求对所有用到的变量作强制定义,也就是“先定义,后使用”。变量定义一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念。data 变量名变量名56变量值变量值存储单元变量名存储单元变量名8C语言程序设计教程语言程序设计教程变量名实际上就是以一个名字
7、对应,代表一个地址。在对程序编译连接时由编译系统给每个变量名分配对应的内存地址。变量在定义时必须指定其数据类型,以便在编译时为其分配存储单元。|&a 2500H|2501H|-1250 -a=1250&b2502H|2503H|-2504H|-123.67-b=123.67 2505H|-2506H|变量名、变量值、变量地址间的关系变量名、变量值、变量地址间的关系例如:例如:int a=1250;int a=1250;float b=123.67;float b=123.67;9C语言程序设计教程语言程序设计教程4.变量赋初值C语言中可有多种方法为变量提供初值。可以在变量定义的同时给变量赋以初
8、值的方法。这种方法称为初始化。在变量定义中赋初值的一般形式为:类型说明符 变量1=值1,变量2=值2,;例如:int a=68;/*指定a为整型变量,初值为68*/也可以使被定义的变量的一部分赋初值。例如float b,c,d=7.9;上式指定b,c,d为单精度实型变量,只对d初始化,其值为7.9。如果对几个变量赋予相同的初值,应写为:int e=50,f=50,g=50;10C语言程序设计教程语言程序设计教程例2.2部分初始化数据程序运行结果:a=6,b=14,c=8程序分析:对定义的整型变量进行部分初始化,然后参与运算,并输出结果。#include void main()int a=6,b
9、,c=8;b=a+c;printf(a=%d,b=%d,c=%dn,a,b,c);11C语言程序设计教程语言程序设计教程5.变量的地址在定义了一个变量后,在内存中会分配相应的存储单元,将变量的值存储到该单元中。如前所述注意区分变量名和变量值这两个不同的概念。例如:int x;float y;x=3;y=3.14159;200020012002200320042005xy200633.1415912C语言程序设计教程语言程序设计教程2.3简单数据类型与表示范围简单数据类型与表示范围2.3.1 整型数据1.整型常量的表示方法整型常量就是整常数。在语言中,经常使用的整常数有三种进制,它们分别是八进制
10、、十六进制和十进制。八进制前缀为“0”,十六进制前缀为“0 x”,十进制无前缀。(1)(1)十进制整数。十进制整数。如:如:123,-456.4123,-456.4。(2)(2)八进制整数。以八进制整数。以0 0头的数是八进制数。头的数是八进制数。如:如:01230123表示八进制数表示八进制数123123,等于十进制数,等于十进制数83,-83,-011011表示八进制数表示八进制数-11,-11,即十进制数即十进制数-9-9。13C语言程序设计教程语言程序设计教程(3)(3)十六进制整数。以十六进制整数。以0 x0 x开头的数是开头的数是1616进制数。进制数。如:如:0 x1230 x1
11、23,代表,代表1616进制数进制数123,123,等于十进制数等于十进制数 291 291。-0 x12-0 x12等于十进制数等于十进制数1818。(4)(4)整型常数的后缀:整型常数的后缀:基本整型的长度为基本整型的长度为1616位,十进制无符号整常数的范围位,十进制无符号整常数的范围为为0 06553565535,有符号数为,有符号数为-32768-32768+32767+32767。八进制无符号数的表示范围为八进制无符号数的表示范围为0 001777770177777。十六进制无符号数的表示范围为十六进制无符号数的表示范围为0X00X00XFFFF0XFFFF或或0 x00 x00
12、xffff0 xffff。如果使用的数超过了上述范围,就必须加上后缀如果使用的数超过了上述范围,就必须加上后缀“L”“L”或或“l”“l”变为长整型数来表示。变为长整型数来表示。例如:例如:567L(567L(十进制为十进制为567)567)注意:注意:长整数长整数567L567L和基本整常数和基本整常数567567在数值上并无区别,在数值上并无区别,但是所占存储空间大小不同。对但是所占存储空间大小不同。对567L567L而言,因为是长而言,因为是长整型量,编译系统将为它分配整型量,编译系统将为它分配4 4个字节存储空间。而个字节存储空间。而对对567567,因是基本整型,则只分配,因是基本整
13、型,则只分配2 2个字节的存储空间。个字节的存储空间。14C语言程序设计教程语言程序设计教程2.整型变量(1)整型数据在内存中的存放形式数据在计算机内存中是以二进制形式存放的,例如,定义了一个整型变量a:int a;/*定义a为整型变量*/a=11;/*给a附以初值11*/由于在内存中数值是以补码表示的,正整数的补码和它的原码在二进制形式上是相同的。所以,a11,在内存中的存放形式如下所示。内存中内存中图图a 110 0 0 0 0 0 0 0 0 0 0 0 1 0 1 115C语言程序设计教程语言程序设计教程负数的补码:将该数的绝对值的二进制形式按位取反后再加1。例如:求-11的补码:符号
14、位符号位(2)整型的分类基本型:类型说明符为int,在内存中占2个字节。短整量:类型说明符为short int或short。所占字节和取值范围均与基本型相同。长整型:类型说明符为long int或long,在内存中占4个字节。16C语言程序设计教程语言程序设计教程有符号型:类型说明符为signed;无符号型:类型说明符为unsigned。有符号型与无符号型又可与前三种类型匹配而构成:类型名称类型说明符数值范围字节数有符号基本型 signed int-32768327672无符号基本型unsigned int0655352有符号短整型 signed short int-32768327672无符
15、号短整型unsigned short int0655352有符号长整型signed long int-214748364821474836474无符号长整型 unsigned long int042949672954上面带 的部分表示其内容可以省略 17C语言程序设计教程语言程序设计教程(3)整型变量的定义变量定义的格式为:类型说明符 变量名标识符,变量名标识符,.;说明:允许在一个类型说明符后,定义多个相同类型的变 量,并使用逗号分割变量名中多个变量,使用分号结 束。类型说明符与变量名之间至少用一个空格间隔。变量定义必须放在变量使用之前。一般放在函数体的开头部分。在程序的同一部分,禁止对同一
16、变量进行重复定义,在书写不同种类型变量定义时,避免都写在一行上。对所用到的变量必须进行强制定义,即“先定义,后使用”。int a,b,c;/*a,b,c为整型变量*/long x,y;/*x,y为长整型变量*/18C语言程序设计教程语言程序设计教程例2.3整型变量的定义与使用#includevoid main()long a,b;int x,sum,ave;/*定义整型变量x,sum,ave*/unsigned y;/*定义无符号整型变量y*/a=9;x=-10;y=20;b=x+a;sum=x+y;ave=(x+y)/2;/*不同类型数据间可进行运算*/printf(b=x+a=%ld,su
17、m=%d,average=%dn,b,sum,ave);程序运行结果:b=x+a=-1,sum=12,average=6 19C语言程序设计教程语言程序设计教程(4)整型数据的溢出每个整型数据都有其自身的数据类型,有其自身所占存储空间大小,基本整型int定义的变量的最大允许存储值为32767 例3.4整型数据的溢出#includevoid main()int x,y;x=32767;y=x+1;printf(%d,%dn,x,y);程序运行结果:32767,-32768程序分析:计算结果-32768与实际应该的结果32768相差一个符号,为什么呢?数据在内存中都是以该数的补码的二进制形式存放的
18、,32767的补码为0111 1111 1111 1111,加1后发生进位,变成1000 0000 0000 0000,最高位的1占据了符号位,而它正好是-32768的补码形式,所以才有上述输出结果。20C语言程序设计教程语言程序设计教程实型数据1实型数据表示方法 实型也称为浮点型。语言中,实数有二种形式:十进制小数形式和指数形式。十进制数形式:由数字09和小数点组成。注意,必须有小数点,且小数点的前面或后面必须有数字。例如:3.1415926,0.0、0.1、7.0、780.、-25.860等均为合法的实数。指数形式:由十进制数(基数)、加阶码标志“e”或“E”以及指数(阶码,只能为整数,可
19、以带符号)组成。其一般形式为:a E n(a为十进制数基数,n为十进制整数阶码)其值为 a*10n。如:1.6E2(等于1.6*102)注意:阶码标志e(或E)之前必须有数字,且e后的指数必须为整数。21C语言程序设计教程语言程序设计教程2.实型数据在内存中的存放形式实型数据一般占4个字节(32位)内存空间。与整型数据的存储方式不同,系统把一个实型数据分为小数部分和指数部分分别存放。指数部分采用规范化的指数形式表示。例如,实数7.15731在内存中的存放形式如下:图中是用十进制形式来表示的,实际上计算机中是用二进制来表示小数部分,以及用2的幂次来表示指数部分的。1+.715731+数符 小数部
20、分 指符 指数 .715731(101)0.71573122C语言程序设计教程语言程序设计教程3.实型变量的分类实型变量分为:单精度(float型)、双精度(double型)和长双精度(long double型)三类。类型说明符比特数(字节数)有效数字数的范围float32(4)6710-371038 double64(8)151610-30710308 long double 128(16)181910-4931104932 实型变量定义,例如:float x,y;/*x,y为单精度实型量*/double a,b,c;/*a,b,c为双精度实型量*/long double z;/*z为长双精
21、度实型量*/23C语言程序设计教程语言程序设计教程4.实型数据的舍入误差由于实型变量的存储单元能提供的有效数字总是有限的,其中单精度的有效数字是7为,双精度的是16位。在有效位数之外的数字将被舍去,因此会产生误差。例2.5 实型数据的舍入误差。#includevoid main()float x,y;x=7654321.152e3;y=x+33;printf(%f,%fn,x,y);程序运行结果:7654321152.000000,7654321152.000000“f”是输出实数的制定格式。结果中xy,单精度的x较33大的多,其有效位数是7位,超过此范围的数字是无意义的。Turbo C 规定
22、小数后最多保留六位。应避免这种被“忽视”的情况发生。24C语言程序设计教程语言程序设计教程5.实型常数的类型实型常数不分单、双精度,都按双精度double型处理。例如定义一个实型变量a,进行如下运算:a3.14159*7.1617编译系统先将3.14159和7.1617作为双精度数进行相乘的运算,得到的结果也是双精度的,然后取其前7位有效数字赋值给实型变量a。这样,可以使计算的结果更加精确。25C语言程序设计教程语言程序设计教程2.3.3 字符型数据和字符串常量字符型数据包括字符常量和字符变量。1.字符常量字符常量是用一对单引号括起来的一个字符。例如:x、d、=、!等都是合法字符常量。注意:d
23、和D是两个不同的字符常量。注意:字符常量只能是单个字符,不能是字符串。字符可以是字符集中除了单引号本身“”、双引号“”、反斜杠“”外的任意字符。但数字被定义为字符型之后就不能参与数值运算。如6和6 是不同的。6是字符常量,不能参与运算。a,A,1a,A,1abcabc、“a”“a”26C语言程序设计教程语言程序设计教程2.转义字符转义字符以反斜线“”开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符的原意,故称“转义”字符。如,输出函数中用到的“n”其意义是“回车换行”C语言中,转义字符有三种:简单转义字符、八进制转义字符和十六进制转义字符。n n 换行换行 t t 横向跳格(水平制
24、表横向跳格(水平制表8 8列)列)r r 回车回车 反斜杠反斜杠 单引号单引号 ”双引号双引号 dddddd ddd ddd表示表示1 1到到3 3位八进制数字位八进制数字 xhhxhh hh hh表示表示1 1到到2 2位十六进制数字位十六进制数字27C语言程序设计教程语言程序设计教程例2.6 转义字符的使用。程序运行结果:fgcde#includevoid main()printf(“abctderfbgn”);程序分析:注意:转义字符的作用。首先在左端输出“abc”,然后遇到“t”,它的作用是跳到下一个制表符位置;一个制表符占8列,下一制表符位置从第9列开始,故在第910列上输出“de”
25、;然后遇到“r”,它代表“回车”(不换行),于是返回到本行的行首(最左端第1列),输出“f”;然后遇到“b”,它代表“退一格”,接着输出“g”。程序运行时的输出结果为:fabgcde但显示器上看到的结果与上述结果不同,为:fgcde中间的字符被后续字符取代了。28C语言程序设计教程语言程序设计教程3.字符变量字符变量用来存储字符常量,它只能存放一个字符。字符变量的类型说明符是char。字符变量类型定义的格式和书写规则都与整型变量相同。例如:char a,b;4.在内存中的存储形式每个字符变量被分配一个字节的内存空间,字符型数据在存储时,并不是把该字符本身放到内存单元中,而是把该字符的ASCII
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基本 数据类型 表达式 运算
限制150内