C语言第2章C语言的基本数据类型与表达式.ppt
《C语言第2章C语言的基本数据类型与表达式.ppt》由会员分享,可在线阅读,更多相关《C语言第2章C语言的基本数据类型与表达式.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 2 2 章章 C C语言的基本数据类型语言的基本数据类型与表达式与表达式 2.1 C2.1 C语言的基本数据类型语言的基本数据类型 2.2 2.2 常量与变量常量与变量 2.3 2.3 运算符与表达式运算符与表达式 2.4 2.4 数据类型转换数据类型转换C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页教学目的和基本要求:教学目的和基本要求:要求学生清楚数据类型与变量、常量的关系,掌握各种常量的性质和定义,掌握表达式中各种运算符的功能和特点,明白产生副作用的原因,了解数据类型的相互转换规则。教学重点:教学重点:数据类型、常量定义,运算符与表达式。C语言程序
2、设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 存取数据必须先确定数据的编码方式、存储格式和存取数据必须先确定数据的编码方式、存储格式和所占的存储长度,所占的存储长度,C语言中把这三者结合起来,给出语言中把这三者结合起来,给出几种固定的形式,这些形式就是最基本的几种固定的形式,这些形式就是最基本的数据类型数据类型。2.1 C2.1 C语言的基本数据类型语言的基本数据类型为什么要设置数据类型?为什么要设置数据类型?在计算机中使用一定长度的存储单元一定长度的存储单元(通常是字节的倍数)来存储数据。存储的编码方式编码方式有:原码、反码、补码、ASCII码 存储的存储格式存储格
3、式有:定点型、浮点型 其中,用于存储数据的存储单元的长度决定了用于存储数据的存储单元的长度决定了数据取值范围的大小。数据取值范围的大小。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页例如:【例2.1】计算圆的面积,半径为 5 cm。程序如下:main()float r r,areaarea;r r=5 5;areaarea=3.143.14*r r*r r;printf(%fn,areaarea);运算结果是输出运算结果是输出运算结果是输出运算结果是输出圆的面积:圆的面积:圆的面积:圆的面积:78.50000078.500000程序中用到的数据:程序中用到的数
4、据:程序中用到的数据:程序中用到的数据:r r、areaarea、5 5、3.143.14对数据进行的运算:对数据进行的运算:对数据进行的运算:对数据进行的运算:*、=例例jc2_1C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页分析:计算机操作处理时,要完成以下工作:在内存中给半径 r 和运算结果 area 开辟存储空间,存放它们的值。应该留多大的地方来存放它们的值?数据 5 和 3.14 与 r、area 不同,它们是在编写程序时就给出确定的值,在运算过程中不会改变。这样的数计算机怎么处理?对整数 5 和小数3.14,计算机存放时是否有区别?涉及数据类型涉及
5、数据类型的基本知识的基本知识C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 字符型(字符型(charchar)整型(整型(int,short,long,unsigned,int,short,long,unsigned,long longlong long)单精度型(单精度型(floatfloat)实型实型 双精度型(双精度型(doubledouble)长双精度(长双精度(long long_comple)long long_comple)枚举类型(枚举类型(enumenum)数组类型(数组类型()构造类型构造类型 结构体类型(结构体类型(structstruc
6、t)共用体类型(共用体类型(unionunion)指针类型(指针类型(*)空类型(空类型(voidvoid)基本类型基本类型数据类型数据类型一、数据类型概述本章讨论本章讨论本章讨论本章讨论基本类型数据基本类型数据基本类型数据基本类型数据C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 变量:变量:指指以以标识标识符符为为名字,其名字,其值值可以改可以改变变的量。的量。在学习各种数据类型之前,我们先简单了解一下常量常量和变量变量的概念。后面的章节中将会详细介绍。常量常量:指在程序运行中指在程序运行中,其数值不能被改变的量。其数值不能被改变的量。变量变量 代表计算机
7、内存中的某一存储空间,代表计算机内存中的某一存储空间,变量的类型决定了该存储空间的长度和其变量的类型决定了该存储空间的长度和其中存放数据的编码方式及存储格式。中存放数据的编码方式及存储格式。变量的类型也决定了该存储空间中存放变量的类型也决定了该存储空间中存放数据的数据形式和取值范围。数据的数据形式和取值范围。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 *八进制的数码范围为八进制的数码范围为07;018 *十六进制的十六进制的数码除了数字数码除了数字0 09 9外外,还使用英文字母还使用英文字母a f(或或A F)表示表示1015。如:如:0 x1e *整型
8、数据均以整型数据均以二进制补码二进制补码形式存储形式存储二、整型(采用定点整数的存储格式,只能表示纯整数)1 1、整型常量:整型常量:(1)(1)十进制形式十进制形式:与数学上的整数表示相同;与数学上的整数表示相同;例如例如:12,-100,0:12,-100,0(2)(2)八进制形式八进制形式:在数码前加数字在数码前加数字0 0;例如例如:012=1*8:012=1*81 1+2*8+2*80 0=10(=10(十进制)十进制)(3)(3)十六进制形式十六进制形式:在数码前加在数码前加0X0X(数字数字0和字母和字母X)。)。例如例如:0 x12=1*16:0 x12=1*161 1+2*1
9、6+2*160 0=18(=18(十进制)十进制)问题:问题:问题:问题:为什么要采用补为什么要采用补为什么要采用补为什么要采用补码?码?码?码?如何表示?如何表示?如何表示?如何表示?C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 2、整型变量的分类:整型变量的分类:根据数据所占的存储长度的不同分为根据数据所占的存储长度的不同分为:int、short、long、long long;同样存储长度的数据又分同样存储长度的数据又分unsigned、signed;故可组合出八种类型(参考课本故可组合出八种类型(参考课本P46P46)。)。3、整型变量的值域:整型变量
10、的值域:由机器中数据的存储长度决定由机器中数据的存储长度决定思考:思考:int a=20000,b=20000,c;c=a+b;c的值为多少?的值为多少?如果如果c定义为定义为long型是否能解决问题?型是否能解决问题?类型名称类型符bit取值范围整型(短整型)signed int signed short int 16-215215-1(-3276832767)无符号整型unsigned int160 216-1(065535)长整型signed long int32-231231-1无符号长整型unsigned long int320 232-1注意:C标准没有具体规定各种数据类型占用存储
11、单元的长度,在不同的编译系统中规定不尽相同,如在VC6.0中short为2B,int和long都为四个字节C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页注意注意三、实型1 1、常量:常量:(1)(1)十进制小数形式:十进制小数形式:由数字和小数点组成;由数字和小数点组成;例如例如:3.4,4.,.3:3.4,4.,.3。(2)(2)指数形式:指数形式:“十进制小数十进制小数”+“e(+“e(或或E)”+“E)”+“十进制数整十进制数整数数”。例如例如:12.5e-6:12.5e-6 表示表示12.51012.510-6 。小数点不能单独出现;小数点不能单独出现
12、;0.0.0 .0 .e e或或E E的两边必须有数,且其后面必须为整数;的两边必须有数,且其后面必须为整数;如:如:6E0.2 6E0.2 e5e5 C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页实型数据的类型 单精度实型数据 float,分配4 Byte双精度实型数据double,分配 8 Byte实型数据的存储 单精度实型单精度实型单精度实型单精度实型指数部分指数部分指数部分指数部分31 30 (831 30 (8位位位位)23)23 63 62 (1163 62 (11位位位位)52)52小数部分小数部分小数部分小数部分22 022 051 051 0
13、 小数的符号位小数的符号位隐藏隐藏“1”2、实型变量的分类及值域实型变量的分类及值域:C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页实型数据的类型及规定 C标准并未具体规定各种实型数据所占字节数,也不规定具体小数和指数部分的位数。一般而言,小数部分位数多,数据表示的有效数字多,精度就高;而指数部分位数多,则表示的数据范围更大。(参照课本P51说明)有效数字的意义?有效数字的意义?有效数字的意义?有效数字的意义?类型类型符Byte绝对值的范围有效数字单精度型float40以及1.2 10-38 3.4 103878 位双精度型double80以及2.3 10-3
14、08 1.7 103081516位C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 字符形式字符形式 功能功能 n n 换行换行 t t 横向跳格横向跳格 b b 退格退格 r r 回车回车 反斜杠字符反斜杠字符 单引号字符单引号字符 ddd 8ddd 8进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符 xhh 16xhh 16进制数表示的进制数表示的ASCIIASCII码对应的字符码对应的字符四、字符类型1 1、常量:常量:(1)(1)用单引号括起来的一个字符;如:用单引号括起来的一个字符;如:A、1、?等等。(2)(2)用单引号括起来的由
15、反斜杠用单引号括起来的由反斜杠()引导的转义字符。引导的转义字符。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页4 4、字符串常量:字符串常量:是用一对双引号括起来的字符序列。是用一对双引号括起来的字符序列。注意:每个字符串的后面都有一个注意:每个字符串的后面都有一个00结束符。结束符。如:如:“SHANGHAI”SHANGHAI”,“AbcdeFGHijk”AbcdeFGHijk”,“How are you”How are you”。注意注意 a a与与“a”a”的区别。的区别。例如:字符例如:字符A A的的ASCIIASCII码为:码为:65D65D(十进
16、制)(十进制)=41H=41H(十六进制)(十六进制)=101Q=101Q(八进制)(八进制)字符字符A A可以表示为可以表示为AA、x41x41、101101。2、字符型变量的分类:字符型变量的分类:char char 和和 unsigned charunsigned char;3 3、值域值域(字符型可参与数学运算,也可看成一种一字节的整型变量)(字符型可参与数学运算,也可看成一种一字节的整型变量)每每个个字字符符型型数数据据在在内内存存中中占占一一个个字字节节;包包括括ASCIIASCII字字符符表表中的所有字符(可显示字符和非显示字符)。中的所有字符(可显示字符和非显示字符)。C语言程
17、序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页一、常量、符号常量及常变量 常量是指在程序运行中常量是指在程序运行中,其数值不能被改变的量。其数值不能被改变的量。常量又可分为直接常量和符号常量。常量又可分为直接常量和符号常量。2.2 2.2 常量与变量常量与变量C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;长整型常量长整型常量 3.14、-3.1、5.12E-6;a、#、n、101;099、12f、0 xg、48EA;01
18、9.5、1e-08;实型常量只能用十进制形式表示实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8、E9;changsha、+?ab;、p、ab;1、直接常量:直接常量:是在程序中直接引用的数据。是在程序中直接引用的数据。请请判判断断这这些些常常量量正正确确与与否否:C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 定义形式定义形式:#define 标识符标识符 常量数据常量数据 例如例如:#define PI 3.14159 在程序预处理时,凡是出现标识符在程序预处理时,凡是出现标识符PI的地方都将用的地方都将用数据数据3.14159来替
19、换。来替换。如如:2*2.3*PI 就就等价于等价于 2*2.3*3.14159。变量是指变量是指以以标识标识符符为为名字,其名字,其值值可以改可以改变变的量。的量。变量代表计算机内存中的某一存储空间,该存储空间变量代表计算机内存中的某一存储空间,该存储空间 中存放的数据就是变量的值。中存放的数据就是变量的值。在同一程序块中,在同一程序块中,变量变量不能被重复定义。不能被重复定义。使用变量时必须使用变量时必须“先定义,后使用先定义,后使用”。2、符号常量符号常量 是用标识符来表示一个数据;是用标识符来表示一个数据;在程序不能给它赋值。在程序不能给它赋值。二、变量3、常变量(C99中使用)con
20、st int a=3;注意符号常量和常变量的区别(课本P42)C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页1、定义形式:定义形式:类型标识符类型标识符 变量名变量名1,变量名变量名2,变量名变量名3.;自己设定,满足自己设定,满足标识符的规定。标识符的规定。如:如:int,int,float,charfloat,char;不可省;不可省注意注意int a=5,b=3;int a=5,b=3;int a=b=c=3;int a=b=c=3;int a,b,c;a=b=c=3;int a,b,c;a=b=c=3;例如例如:int a,b,c;float x,y;
21、char c1,c2;或或 int c1,c2;定义变量就是在内存中划出一块相应类型的存储空间存放该变量的值。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页 mainmain()int x int x,y y,z z,w w;/*/*定义定义x x,y y,z z,w w为整型变量为整型变量*/unsigned int k unsigned int k;/*/*定义定义k k为无符号整型变量为无符号整型变量*/x=10 x=10;y=-20y=-20;k=30k=30;z=x+kz=x+k;w=y+kw=y+k;printfprintf(“x+k=%dx+k=
22、%d,y+k=%dn”y+k=%dn”,z z,w w);例例2-2:程序运行结果为:程序运行结果为:x+k=40 x+k=40,y+k=10y+k=10 变量根据作用域的不同可分为变量根据作用域的不同可分为局部变量局部变量和和全局变量全局变量,根据存,根据存储方式的不同可分为储方式的不同可分为静态存储变量静态存储变量和和动态存储变量动态存储变量,这些我们将,这些我们将在第六章中详细介绍。在第六章中详细介绍。C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页2.3 运算符和表达式主要内容:算术运算符和算术表达式赋值运算符和赋值表达式关系运算符和关系表达式逻辑运算符
23、和逻辑表达式位运算符和位运算表达式条件运算符和条件表达式逗号运算符和逗号表达式其他运算符及其运算C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页运算符的有关概念作用:对运算对象完成规定的操作运算类型:按运算对象分:单目、双目、三目按功能分:算术、赋值、关系、逻辑条件、逗号、位、其他C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页运算符的优先级和结合性 优先级优先级优先级优先级指各种运算符号的运算优先顺序例如:算术运算优先于关系运算 算术运算中先*/后+-l l结合性结合性结合性结合性 指运算符号和运算对象的结合方向指运算符号和运算
24、对象的结合方向指运算符号和运算对象的结合方向指运算符号和运算对象的结合方向 分为:从左向右分为:从左向右分为:从左向右分为:从左向右(左结合左结合左结合左结合)和从右向左和从右向左和从右向左和从右向左(右结合右结合右结合右结合)例如:例如:例如:例如:算术运算符为算术运算符为算术运算符为算术运算符为左结合左结合左结合左结合 a-ba-b+4 4 赋值运算符为赋值运算符为赋值运算符为赋值运算符为右结合右结合右结合右结合 a=b=5a=b=5(C C语言规定见教材语言规定见教材语言规定见教材语言规定见教材 附录附录附录附录C C)C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页
25、下一页下一页本章涉及的运算符本章涉及的运算符+-*/%+-+-=+=-=*=/=%=&=|=!=&|!&|?:,&sizeof (数据类型标识符)类型种类算术运算符赋值运算符关系运算符逻辑运算符位运算符条件运算符逗号运算符其他运算符C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一页表达式的有关概念表达式的有关概念什么是表达式由运算符将运算对象连接成的式子,它描述了一个具体的求值运算过程。计算表达式的值按照运算符的运算规则求值求值时注意运算符的优先级和结合性表达式值的类型自动转换强制转换 C语言程序设计C语言程序设计C语言程序设计C语言程序设计上一页上一页下一页下一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 基本 数据类型 表达式
限制150内