第02章数据类型运算符与表达式.ppt
《第02章数据类型运算符与表达式.ppt》由会员分享,可在线阅读,更多相关《第02章数据类型运算符与表达式.ppt(54页珍藏版)》请在三一文库上搜索。
1、第二章 数据类型、运算符与表达式,C的数据类型 常量、另1、另2、字符(串)常量与转义字符 变量与标识符 变量类型说明符 类型转换 运算符 算术(余) 、关系、逻辑、赋值、逗号、条件运算、位运算,二、C的数据类型,(一) 什么是数据类型? (二) C语言的数据类型有哪些?,(一) 什么是数据类型?,数据结构+算法=程序,C语言中以 “数据类型”形式存在,对数据的描述,对操作的描述,在程序中对用到的 所有数据都必须指 定其数据类型.,?,不同类型的数据,所占 内存的字节数不同, 对 应的操作也不相同。,(二) C的数据类型,(一) 常 量 (二) 变 量,三、常量与变量,概念,在程序运行过程中,
2、其值不能被改变的量。,分类,字面常量(直接常量): 12 -44.6 a “Hello! “ 符号常量:用一个标识符代表一个常量。,字符串常量,符号常量的定义,格式:#define 常量名 字面常量 举例:#define PRICE 100 #define PI 3.14 #define C1 a,习惯上符号常量名用大写,意义,1、含义清楚,使用的一致性。 2、在需要改变一个常量时,能够做到“一改全改”。,符号常量的定义放在 函数外面。,(一) 常量,常量举例(求某商品总价),#include #define PRICE 100 /定义符号常量 void main() int sum; sum
3、=PRICE*20; printf(“%dn“,sum); ,单价符号常量,数量直接常量,概念,其值可以改变的量称为变量。,(二)变量与标识符,要素,(1)变量名。每个变量都必须有一个名字变量名,变量命名遵循标识符命名规则。 (2)变量值。在程序运行过程中,变量值存储在内存中。在程序中,通过变量名来引用变量的值。,标识符 identifier,1、标识符就是一个名字(如常量名、变量名、函数名)。 2、组成:只能由字母、数字、下划线组成。且第一个字符必须为字母或下划线。 3、长度:标识符的有效长度随系统而异,如果超长,则超长部分被舍弃。VC+6.0中规定最大长度为247个字符。 4、标识符命名的
4、良好习惯见名知意,例如,name(姓名)、age(年龄),下列标识符是否合法,为什么? sum a1 b2 s_name 123 #ss a.b.c 1a8bc,思 考 ?,合法,不合法,变量定义方法:,数据类型 变量名, 变量名2;,习惯上,类型名和变量名用小写字母。,辨析:逗号与分号的区别,方式: 1、定义变量的同时赋初值(也叫变量初始化)。 数据类型 变量名=初值, 变量名2=初值2; 2、通过一个赋值语句给变量赋(初)值。 变量名=初值;,变量赋(初)值,出现在函数体 的声明部分,出现在函数体 的执行部分,int a,b=3;,int a,b; b=3;,定义两个变量,一个有初值,一个
5、没有; 不是两个变量的初值都为3; int a=b=3; 是合法的。,1、程序中用到的变量必须“先定义(declare),后使用”。 2、C语言的关键字不能用作变量名。 3、C语言对英文字母的大小写敏感,即同一字母的大小写,被认为是两个不同的字符。 4、定义变量时,给几个变量赋相同的初值, 应写成 : int a=3,b=3,c=3; 不能写成: int a=b=c=3; 但下面的语句合法: a=b=c=3; 5、给变量赋值时,正常情况下应给变量赋相同类型的数据。若给变量赋与其类型不同的数据时,需进行类型转换。,关于变量以及变量赋初值的几点说明,变量举例,include void main()
6、 int student,age; int if=adrress=1; float score=90; stadent=2; Age=20.7; printf(“%d %d %d %f“,if,student,age,score); ,本程序中有几处错误?,undeclared identifier,(一) 整数类型 (二) 实数类型 (三) 字符类型 (四) 不同类型数据间的转换,四、基本数据类型,(一) 整数类型变量,分类及取值范围,表示可以省略,各类型整型变量占用的内存字节数,随系统而异。,表示方法,十进制: 123, -456, 0 八进制: 0123, -0456, 十六进制: 0x
7、123, -0x456,以数字0开头,以0x开头,整数类型常量,分类,基本整型(数据范围与int型一样) 长整型 (在数值后面加“L(l)”, 数据范围与long int型一样),如123l,315L,类型匹配规则,一个整型常量,可以赋给能容纳下其值的整型变量,注意: 常量无unsigned型。但一个非负整型常量,只要它的值不超过相应变量的值域(即取值范围),也可以赋给unsigned型变量。,#include void main() long int c,d=9L; unsigned int e=-3 , f; f =5; c=-6; printf(“%ldn%ldn%un%u“,c,d,e
8、,f); ,举例,-6 9 4294967293 5,运行结果,整型数据在内存中是以补码表示的。(参见教材P41),整数类型存储方式,例如: 求-10的补码表示(按16位存储)。,-10的原码,1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0,除符号位外各位取反,1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1,末位加1,1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0,则得到-10的二进制补码的表示。,整数类型溢出举例(P44-例3.3),#include void main() int a,b; a=32767; b=a+1; printf(“%d
9、n%d“,a,b); ,32787 32768,运行结果,改为2147483647,2147483647 2147483648,运行结果,分类及取值范围,(二) 实数类型变量,表示方法,十进制小数形式: 123. 34,-0.0045, 0.0 指数形式: E(e) 如0.23e2 ,-0.45e-3, 3.0+5,规范化指数形式,数字和小数点组成,实数类型常量,关于分类,实型常量不分float型和double型。一个实型常量,可以赋给一个实型变量(float型或double型)。,指数形式(数符+小数部分+指数部分),小数部分占的位数越多,数的有效 数字越多,精度越高.指数部分占的 位数越多
10、,表示的数值范围越大.,实数类型存储方式,实型数据在内存中是按指数形式存储的。(P46),规范化指数形式:小数部分采用纯小数形式,且最高位不为0。,举例:3.14159在内存中的存放形式为:,表示方法,用单引号括起来的一个字符. a A 9 = ? ,不同的两个字符,转义字符,(三) 字符类型常量,语言还允许使用一种特殊形式的字符常量,就是以反斜杠“ “开头的转义字符。,将后面的字符转换 为另外的意义.即是 一种控制符号.,举例,#include void main() printf(“abcbdnxyz“); printf(“rlmntopqn“); ,abd lmn opq,实际中,不会
11、这样使用!,#include void main() printf(“x4Fx4Bx21n“); /* 等价于printf(“OK!n“); */ printf(“x15 xABn“); ,! ,结果:,结果:,字符类型变量,存储方式,以ASCII码存储,占一个字节(参见教材P50),类型及范围,char 大小写英文字母,数字,运算符,标点符号等,注意:字符型数据与整型数据在存储方式上的相似性使得两者之间可以通用。但字符型数据的表示范围是:0255。,举例,字符变量ch中存放字符a,其ASCII码为97,在内存中以二进制形式存放,其格式如下:,0 1 1 0 0 0 0 1,ch,例 字符变量
12、的字符形式输出和整数形式输出。 #include void main() char ch1,ch2; ch1=a; ch2=b; printf(“ch1=%c,ch2=%cn“,ch1,ch2); printf(“ch1=%d,ch2=%dn“,ch1,ch2); ,字符类型举例1,一个字符型数据,既可以字符形式输出,也可以整数形式输出,ch1=a,ch2=b ch1=97,ch2=98,程序运行结果:,字符类型举例2,允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算,例字符数据的算术运算(参考教材P374的ASCII码表)。 #include void main() c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02 数据类型 运算 表达式
链接地址:https://www.31doc.com/p-3416490.html