基本数据类型运算符与表达式

上传人:宝路 文档编号:48300109 上传时间:2018-07-13 格式:PPT 页数:85 大小:644.13KB
返回 下载 相关 举报
基本数据类型运算符与表达式_第1页
第1页 / 共85页
基本数据类型运算符与表达式_第2页
第2页 / 共85页
基本数据类型运算符与表达式_第3页
第3页 / 共85页
基本数据类型运算符与表达式_第4页
第4页 / 共85页
基本数据类型运算符与表达式_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《基本数据类型运算符与表达式》由会员分享,可在线阅读,更多相关《基本数据类型运算符与表达式(85页珍藏版)》请在金锄头文库上搜索。

1、2 基本数据类型、运算符与表 达式河南理工大学 C语言程序设计编写组重点、难点l本章重点:lC语言的基本数据类型 l变量的定义、赋值、初始化以及使用方法l基本运算符的运算规则及优先级别l表达式的构成规则和计算l数据类型转换的意义和实质 l本章难点:l数据类型的作用及注意事项l自增、自减运算符的使用l运算符优先级别l混合表达式运算l类型转换及转换过程中出现的误差 内容提要l2.1 C语言的数据类型 l2.2常量和变量l2.2.1常量l2.2.2 变量 l2.3 整型数据l2.3.1 整型常量的表示l2.3.2 整型变量l2.3.3 整型常量的类型 l2.4 实型数据l2.4.1 实型常量的表示l

2、2.4.2 实型变量l2.4.3 实型常量的类型 l2.5字符型数据l2.5.1字符型常量l2.5.2 字符变量内容提要l2.6 算术运算符与算术表达式l2.6.1 基本算术运算符l2.6.2 算术表达式及算术运算符的优先级和结合性l2.6.3 自增、自减运算符 l2.7 赋值运算符与赋值表达式l2.7.1 赋值运算符l2.7.2 复合赋值运算符l2.7.3 赋值表达式 l2.8 逗号运算符与逗号表达式 l2.9 位运算符l2.9.1 位运算符l2.9.2 位运算复合赋值运算符 l2.10 数据类型转换与计算类型长度运算符l2.10.1 自动类型转换l2.10.2 强制类型转换l2.10.3计

3、算类型长度运算符2.1 C语言的数据类型 l程序主要由算法和数据结构两部分组成。l所谓数据结构指的是数据的组织形式,C 语言的数据结构以数据类型的形式出现。l数据类型是指数据的内部表现形式,是进 行C语言程序设计的基础。l数据类型可以根据数据在加工中的特征来 划分。lC语言规定,在C程序中使用的每一 个数据都属于惟一的一种数据类型, 没有无类型的数据,一个数据也不可 能同时属于多种数据类型。lC语言的数据类型可分为4大类,如 图2-1所示。 l1) 基本类型:不可再将其 分解为其他类型。 l2) 构造类型:构造类型是 根据已定义的一个或多个数 据类型用构造的方法来定义 的。 l3) 指针类型:

4、指针是一种 特殊的又具有重要作用的数 据类型,其值用来表示某个 量在内存储器中的地址。 l4) 空类型:空类型是从语 法完整性的角度给出的一种 数据类型。数据类 型基本类型构造类型实型整型短整型长整型单精度型整型双精度型指针类型空类型枚举类型结构体类型数组类型共用体类型图2-1 C语言的数据类型字符类型l每个数据都要在内存中(个别数据可能在 寄存器中)分配若干个字节,用于存放该数 据。l数据占用的内存字节数称为该数据的“数 据长度”。l不同类型的数据的长度是不同的,因此, 在使用任何一个数据之前,必须对数据的类 型加以定义,以便为其安排长度合适的内存 。 2.2 常量和变量l对于基本数据类型量

5、,按其取值是否可改 变又分为常量和变量两种。 l在程序执行过程中,其值不发生改变的量 称为常量。变量是指其值可以变化的量,变 量实质上是代表了内存中某个存储单元。 2.2.1 常量l在C语言中,常量也称为常数,可分为4类:整型常量 、实型常量、字符常量和字符串常量。常量的类型由书写 方法自动默认,不需要事先说明。从书写方式上,常量可 以分为字面常量和符号常量两种。 (1) 字面常量 l字面常量又称直接常量,就是日常所说的常数。由于从 字面上即可直接看出它们是什么,因此称为“字面常量”。 例如: 整型常量:12、0、-3; 实型常量:4.6、-1.23; 字符常量:a、b。 l(2) 符号常量l

6、1)标识符l标识符是用户自定义的一种字符序列,用于表 示程序中需要辨认的对象,比如变量、数组、函 数等对象的名字。 lC语言的标识符可以分为关键字、预定义标识符 和用户标识符三类。l关键字是由C语言规定的具有特定含义的标识符 ,也称为保留字。关键字均为小写,如int、while等;l预定义标识符在C语言中有特定的含义,如 printf、include等;l用户标识符是由用户根据需要定义的标识符。l标识符的命名必须遵循如下规则:l C语言规定,标识符是由字母、数字和下划线组成的一串符 号,但必须以英文字母或下划线开头。例如:larea、PI、_ini、a123都是合法的标识符,1se、x-x、a

7、.a、a /* 输出圆面积 */ printf(“circumference=%fn“,2*PI*R); /* 输出圆周长 */ 该程序的运行结果如下: area=88.247263 circumference=33.300854复习复习复习# define 符号常量 常量变量l在C语言中,变量必须遵循“先定义、后使用”的原则,l变量定义语句格式如下:类型标识符 变量名1,变量名2,;l其中,类型标识符说明了变量的类型,如整型、实型和 字符型等。变量名属用户标识符,应遵守标识符命名规则 。编译时,系统根据指定的类型分配给变量若干个连续字 节存储空间。l在定义变量的同时也可指出它的初值,编译系统

8、在为变 量分配存储空间时,将该初值存入这个存储空间,这种方 法称为变量的初始化。格式如下:类型标识符 变量名=初值;l注意:变量定义语句可放在函数外,也可放在函数或复 合语句内。 2.3 整型数据l2.3.1 整型常量的表示l整型常量就是整数,用来表示一个正的、负的或 零的整数值。在C语言中,整型常量有十进制、八 进制和十六进制等三种数制表示方法。l1)十进制整数:与日常使用的整数写法一样。例 如:0、-143、87等。l2)八进制整数:书写时,以数字0开头,后面是 八进制数字序列,数字取值范围为07。例如:00、 015、037等均为合法的八进制数,而0539、02A则 为非法的八进制数。l

9、3)十六进制整数:以0x或0X开头的十六进制数 字序列,数字取值范围为09、af或AF。例如 0x0、-0xABC、0X9fc等。注意0x 中的0是数字。 2.3.2 整型变量l(1)整型变量的分类l整型变量用来存放整数,整型变量的基本类型为int型。 若加上修饰符,可定义更多的整数数据类型。 l整型变量根据表达范围可分为:基本整型 (int)、短整型 (short int)和长整型(long int)三种,一般微型机中, int型数据占两个字节,long int型占四个字节。l根据是否有符号可以分为:有符号型(signed)和无符 号型(unsigned)两种。若未指定是否有符号,则隐含为

10、有符号型(signed)。l两种分类方法结合起来可以将整型变量分为6种,表2 1列出每种数据类型所占字节数和数值范围,方括弧括起 来的部分可省略。Turbo C的规定与表21完全一致,但 有的系统略有差别。表2-1 整型变量的类型整型类型符占用字 节数数值范围signed int2-3276832767 即-215(215-1)signed short int2-3276832767 即-215(215-1)signed long int4-214748364822147483647 即-231(231-1)unsigned int2065535 即0(216-1)unsigned short

11、 int2065535 即0(216-1)unsigned long int404294967295 即0(232-1)1.3 算法及其描述l(2)整型变量的定义l在定义整型变量时,某些类型修饰符可以 省略,参照表2-1。例如:int a,b,c; /* a,b,c为有符号整型变量 */long x,y; /* x,y为有符号长整型变量 */ unsigned p,q; /* p,q为无符号整型变量 */l(3)整型数据在内存中的存放形式l 数据在内存中是以二进制形式存放的。对于有 符号整型数来说,存储单元的最高位是符号位(如 int型,从右向左依次为第0位、第1位,最高 位指第15位),使用

12、0表示正数,1表示负数,其余 为数值位。无符号整型数没有符号位,其存储单 元全部二进制位都用于存放数值,因而无符号整 型变量不能存储负数。int型有符号变量和无符号 变量在表示最大数时,内存的存储如图22所示 。符号位signed int unsigned int01111111111111111111111111111111图22 int型有符号整型和无符号整型最大数的表示l实际上,整型数据是以补码的形式来存储的。正数的补 码与原码相同;对于负数来说,将原码的符号位保持不变 ,数值位逐位取反(变为反码),末位(即最右边的那一 位)加1,即得补码。也就是说,一个负数的补码等于该 负数的反码与末

13、位加1之和。例如,求10的补码(设为2 个字节),步骤如下。l 写出10的原码:1000000000001010l 数值位取反,得10的反码:1111111111110101l 末位加1,得-10的补码:1111111111110110 l有时需要将二进制的补码转换成十进制数,步骤如下( 以补码1111111111110110为例)。l 各数值位取反,得1000000000001001l 位加1,得1000000000001010l 转换为十进制,得-10 l 即,负数的补码的补码就是原码。l4)整型数据的溢出l在Turbo C中一个int型变量的最大允许值为32767,如果再加1,会出现 什

14、么情况?我们可以通过一个例子来加以说明。 l例2-2 整型数据的溢出 main( ) int a,b;a=32767; b=a+1;printf(“%d,%d“,a,b); l a和b的存储示意图如图23所示。 a b1000000000000000图23 a和b的存储示意图01111111111111112.3.3 整型常量的类型l整型常量也有短整型、长整型、有符号和无符号之分。 在16位字长的机器上,整型常量占用2个字节的存储空间 ,此为短整型;而长整型常量占用4个字节的存储空间, 书写时,需要在整数的末尾要加上字母L或l。例如148L( 十进制长整型数)、013L(八进制长整型数)、0x

15、16L( 十六进制长整型数)等。 l在表示无符号整型常量时,需要在数值后添加字母U或 u作为后缀。例如358u、0x38Au、235LU等都是无符号整 型常量。八进制和十六进制数通常是无符号数。 l注意长短整数所占的字节及不同进制的表示,如20和 20L虽然有相同的数值,但在内存中却占用不同数量的字 节;再如10、010、0x10等都是短整型常量,但它们却表 示不同的数值。2.4 实型数据l2.4.1 实型常量的表示l实型常量也称浮点型常量、实数或浮点数。在C语言中 ,实型常量的表示采用十进制,它的书写方式有两种:l1) 小数形式l即数学中常用的实数形式,由数码09和小数点组成 。例如,0.0

16、、25.0、5.789、0.13、5.0、300.、-267.8230等均 为合法的实数。注意,必须有小数点。l2) 指数形式l指数形式也称为科学记数法,由尾数、阶码标志“e”或 “E”以及阶码(只能为整数,可以带符号)组成。l例如,2.1E5 (等于2.1105),3.7E-2 (等于3.710-2), 0.5E7 (等于0.5107),-2.8E-2 (等于-2.810-2)都是合法的;而 345 (无小数点),E7 (阶码标志E之前无数字),-5 (无阶码标志), 53.-E3 (负号位置不对),2.7E(无阶码)都不是合法的实型数。l需要注意的是,采用指数形式表示实型常量时,在字母 e或E的前后及数字之间不能插入空格。2.4.2 实型变量l(1)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号