【教学课件】第2章数据类型、运算符和表达式.ppt
《【教学课件】第2章数据类型、运算符和表达式.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第2章数据类型、运算符和表达式.ppt(86页珍藏版)》请在三一办公上搜索。
1、第2章 数据类型、运算符和表达式,2,目 录,数据类型、常量和变量的定义运算符的种类、优先级和结合方向表达式的类型和求值简单的C程序设计及基本输入输出,3,C的数据类型(Data Types),基本类型整型、字符型、浮点型(实型)、枚举类型构造类型数组类型、结构体类型、共用体类型指针类型空类型,4,数据类型、常量和变量,C的数据结构是以数据类型形式出现的由前述数据类型可以构造出更复杂的数据结构C语言的数据有常量和变量之分常量和变量都分别属于某一数据类型程序中用到的所有数据都必须指定类型本章仅介绍基本数据类型,5,标识符(Identifier),标识符变量名、符号常量名、函数名、类型名标识符命名
2、规范由字母、数字、下划线(Underscore,_)组成第一个字符必须为字母或下划线C语言标识符是大小写敏感的标识符的名称一般应具有一定的含义不要与C语言关键字(Keywords)重复一般不要使用以下划线开头的标识符,6,标识符示例,正确的标识符student、num1、_SUM、_1_2_3MyName、myname、my_name错误的标识符room3-1包含了其他字符(减号)2men以数字开头long与关键字重复Mr.Zhu包含了其他字符(小数点),7,常量(Constants),常量程序运行过程中,其值不能被改变的量例如:12、-6.7、a符号常量(Symbolic Constants
3、)用一个标识符代表的常量相当于把标识符用一个常量简单替换下来标识符是一个整体,不要试图拆开来替换含义清楚,一改全改习惯上符号常量名用大写字母,8,常量示例,#define PRICE 30#define NUM 12void main().total=NUM*PRICE;total2=84*PRICE2;printf(total=%d,total);.,不会被替换,=total=12*30;,常量,符号常量,9,变量(Variables),其值可以改变的量称为变量变量有一个名字,即标识符变量在存储器中占据一定的存储单元变量占据存储空间的大小由其类型决定变量名表示存储变量的存储单元地址程序使用变
4、量名表示这个变量所占据的存储单元里存储的数据的值变量要“先定义,后使用”,10,变量的存储,变量名,存储单元(地址),变量值,11,整型(Integer),整型常量的表示方法整型变量整型数据在内存中的存放形式整型变量的类型整型变量的定义整型数据的溢出整型常量的类型,12,整型常量的表示方法,十进制(Decimal)例如,123、-456、0八进制(Octal)以0开头,不得含有8或9例如,0123、-0456错例,0138、-0912十六进制(Hexadecimal)以0 x或0X开头,用af或AF表示1015例如,0 x123、-0X45、0 x3AB、-0 xabc,13,整型数据在内存中
5、的存放方式,二进制形式举例,int i=50;/*int类型占2字节*/补码(Complement)正数:与原码一致,首位为0负数:绝对值取反加一,首位为1零:各位全为0,14,补码举例,举例int i=-50;/*int类型占2字节*/,50的原码,-50的补码,15,整型变量的分类,按占用存储空间的大小划分基本整型int短整型short int长整型long int按有无符号划分有符号signed无符号unsigned上述两种分类方式组合,可得到6种类型,16,整数的长度,整数的类型与长度short:占2字节(16bit)long:占4字节(32bit)int:占2或4字节(16或32bi
6、t)2Bytes=short int long=4Bytes若需要精确的长度,可选用short或long举例BC3.1:int长度为2Bytesgcc:int长度为4Bytes,17,有符号数与无符号数,有符号数二进制补码表示,首位为符号位指定signed或缺省情况,即为有符号数无符号数没有符号位,只能表示非负数无符号数类型必须指定为unsigned若把负数赋值给无符号数,则把该负数的补码当作无符号数进行处理,18,有符号数与无符号数举例,void main()int i;unsigned j;i=j=-50;i=i/2;/*-25*/j=j/2;/*32743*/,19,整型数据的取值范围,
7、20,整型变量的定义(Definition),定义形式int a,b;unsigned c;long d;unsigned short e;变量的定义一般放在一个函数开头的声明部分,关于变量定义的具体内容在以后相关章节里详细介绍,21,整型变量的定义与使用举例,void main()int a;/*定义有符号基本整型变量a*/unsigned b;/*定义无符号基本整型变量b*/long c;/*定义有符号长整型变量c*/a=-23;/*a的值为-23*/b=45;/*b的值为45*/c=a+b;/*c的值为22*/,22,整型数据的溢出(Overflow),溢出数据超出了变量能够存储的范围,
8、造成数据丢失或数值改变等举例,void main()int a=32767;a+;/*32768?*/,32767的补码,-32768的补码,23,整型常量的类型,常量的类型后缀(Suffix)l、L表示常量是一个长整型u、U表示常量是一个无符号整型数两种后缀可以一起使用举例123l长整型常数123456U无符号整型常数456789ul无符号长整型常数789101Lu无符号长整型常数101,24,整型常量使用中的类型问题,对整型变量赋值常量的值不要超过变量的取值范围直接使用常量带有l、L、u、U等后缀的整型常量一般用于函数调用不带有后缀的整型常量的类型,是根据其数值大小所处的范围来确定的,25
9、,浮点型(Floating Point),浮点型常量的表示方法浮点型变量浮点型数据在内存中的存放形式浮点型变量的类型浮点型数据的舍入误差浮点型常数的类型,26,浮点型常量的表示方法,十进制小数形式由符号、数字和小数点(必须)组成整数和小数部分都可省略,但不能同时省略举例,12.3、-.123、123.、0.、.0指数形式由整数(或小数)、e(或E)、整数顺序组成e或E之前必须有数字,之后必须是整数举例,123.4e-5表示123.410-5错例,e1、12e、.e5、e,27,规范化指数形式,规范化指数形式类似于“科学计数法”e或E之前的小数中,小数点前面有且仅有一个非零数字举例,123.45
10、6规范化形式,1.23456e2、1.23456E+002非规范化形式,123.456、12.3456e1、12345.6e-2、0.123456e3、12345600e-5,28,浮点型数据在内存中的存放方式,二进制规范化指数形式小数部分长度与能表示的精度有关指数部分长度与能表示的数值范围有关,29,几个特殊的数,无穷大(Infinition)Inf举例,1.0/0.0-Inf举例,-1.0/0.0NaN(Not a Number)NaN举例,sqrt(-1)/*开平方*/-NaN举例,-sqrt(-1)零(Zero)浮点数用特殊的形式表示零,30,浮点型变量的类型,分类单精度 float双
11、精度 double长双精度 long double长度和取值范围,31,浮点型数据的舍入误差,由于浮点型变量能够表示的有效数字有限,将有效位以外的数字舍去造成误差举例,float a=123456.789e5,b;b=a+20;printf(a=%fnb=%fn,a,b);,运行结果,思考:1.0/3*3=?,32,浮点型常量的类型,类型后缀f、F表示常量是一个单精度型浮点数l、L表示常量是一个长双精度型浮点数无任何后缀的浮点型常量视作双精度型对浮点型变量赋值一个浮点型常量可以赋值给任何类型的浮点型变量根据变量类型截取常量的相应有效数字注意防止出现溢出,33,字符型(Character),字符
12、型常量字符型变量字符型数据在内存中的存放形式字符型数据的使用方法字符串常量,34,字符型常量,单引号括起来的一个字符举例,a、A、1、?错例,abc、我转义字符以开头的特殊字符ddd 1到3位8进制数ASCII码代表的字符xhh 1到2位16进制数ASCII码代表的字符举例,n、t、123、x3A,35,字符型变量,字符型变量只能存放一个字符定义与使用,void main()char c1,c2;/*定义字符型变量c1和c2*/c1=a;/*c1的值为a*/c2=2;/*c2的值为2*/,36,字符型数据在内存中的存放形式,一个字符型数据占一个字节的空间字符型数据以其ASCII码形式存放字符型
13、数据的存放形式与只占一个字节长度的整型数据完全相同,37,字符型数据的使用方法,可以把字符型数据视作一种长度为1字节的整型数据处理当使用字符型数据时,与使用这个字符的ASCII码(一个8位整数)是完全一样的字符型数据的用法与整型数据完全一样,包括运算、赋值、输入、输出等字符型数据使用过程中,同样需要注意溢出、符号等问题是字符还是整数,只有在输出时才有意义,38,字符型数据使用举例,void main()char c;int i,j;c=97;/*c=a*/i=c+20;/*i=117*/j=2;/*j=50*/printf(%c,%dn,c,c);/*a,97*/,39,字符型变量的符号,字符
14、型变量与整型变量一样,也分为有符号数与无符号数无符号字符unsigned char c;举例,表示一个班级的人数(256)赋值和使用中需要注意的问题,与整型变量相同,40,字符串(String)常量,表示形式一对双引号括起来的字符序列引号内可以包括0个、1个或多个字符字符序列中的特殊字符用转义字符表示举例,abc、a、我举例,12.4、$#*!、C:HOME字符常量和字符串常量是不同类型的数据例如,a与a是不同的不能把一个字符串赋值给一个字符型变量,41,字符串在内存中的存放方式,在内存中每个字符按顺序存放字符串结尾有一个空字符(ASCII=0,0)作为字符串结束标志字符串结束标志0是不能显示
15、的,在字符串常量中,也不用显式写出来举例TESTa,42,变量赋初值(Initialization),在定义变量的同时对变量赋值(初始化)举例int a=1;/*相当于 int a;a=1;*/int a,b=3;/*对b赋初值,a没有初值*/int b,c,a=b=c=100;/*对三个变量赋同样的初值*/变量使用前,一般应先对它赋值,43,各类数值型数据间的混合运算,整型、字符型、浮点型数据可混合运算混合运算时,不同类型的数据按照一定的规则先转换为同一类型,然后再运算,44,运算符(Operator),运算符的种类运算符的优先级运算符的结合方向,45,运算符的种类(1),算术运算符+-*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 数据类型 运算 表达式
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5658341.html