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