第二章 基本数据类型与表达式

24
第第第 第第第第第第第第第第 第第第第 第第第第第第第第第第第第 第第第第第第第第第第第 第第第第第第第第 第 ,,, 第第第第第第第第第第第第第第第第第第第第 第第第第 1. 第第第第第第第第第第第第第第第第第第第第 第第第第第第第第第第 第 ,, 第第第第第第第第第第第第第第第第第第第第第第 2. 第第第第第第第第第第第第第第 第第第第第第第第第第第第第第第第第 ,。

Upload: annona

Post on 20-Mar-2016

120 views

Category:

Documents


0 download

DESCRIPTION

第二章 基本数据类型与表达式. 教学目的: 本章主要介绍各种数值类型,数据类型和数值表达式,逻辑型数据类型,和逻辑表达式以及表达式的副作用和表达式语句。 教学要求: 1. 掌握各种数据类型的基本情况和常量表示方法,掌握变量的定义方法,能够根据要解决问题的实际情况选用适当的数据类型。 2. 熟练掌握数值表达式的构造方法,能够用表达式完成程序中的数值计算。. 3. 熟练掌握逻辑表达式的构造方法,能够用逻辑表达式表达各种条件。 4. 了解表达式的副作用,能够在程序中恰当运用。 教学重点:数据类型及应用 教学难点:表达式及副作用. 长度 2 2 4 4 4 4. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第二章 基本数据类型与表达式

第二章  基本数据类型与表达式 教学目的:

本章主要介绍各种数值类型,数据类型和数值表达式,逻辑型数据类型,和逻辑表达式以及表达式的副作用和表达式语句。 教学要求:

1. 掌握各种数据类型的基本情况和常量表示方法,掌握变量的定义方法,能够根据要解决问题的实际情况选用适当的数据类型。 2. 熟练掌握数值表达式的构造方法,能够用表达式完成程序中的数值计算。

Page 2: 第二章 基本数据类型与表达式

3. 熟练掌握逻辑表达式的构造方法,能够用逻辑表达式表达各种条件。 4. 了解表达式的副作用,能够在程序中恰当运用。

教学重点:数据类型及应用 教学难点:表达式及副作用

Page 3: 第二章 基本数据类型与表达式

类型 有符号短整数 无符号短整数

有符号整数 无符号整数

有符号长整数

无符号长整数

关键字short, short int, signed short int

Unsigned short, unsigned short int

int, signed int

Unsigned, unsigned int

long, long int, signed long int

Unsigned long, unsigned long int

长度2

2

4

4

4

4

值域范围-215215-1 内的整数0216-1 内的整数

-231231-1 内的整数0232-1 内的整数-231231-1 内的整数

0232-1 内的整数

Page 4: 第二章 基本数据类型与表达式

整形数据 常量表示

①短整型 →整型 ②长整型 L ③整型:十进制数: 12 ; 八进制 012 =1

0 十六进制: 0X12=18 , 0x12=18 无符号数: U

变量: 定义及初始化: 类型修饰符 变量名 [= 表达式 ] ,『 ,变量名 [= 表达式 ] 』; int a=99L (与定义一致)

Page 5: 第二章 基本数据类型与表达式

字符型数据 类型: char, unsigned char ( 1 字节) 常量:

①直接用引号引起来: eg: ’U’ ”abcdef” ②转义字符 ③代码所代表字符 : 八进制数;十六进制数 ④引号及反斜杠表示法:’ \’’ ’\”’ ’\\’ ⑤字符串表示法

长度 +1= 占字节空间 转义字符只算一个字节 路径的表示法

Page 6: 第二章 基本数据类型与表达式

字符型数据 变量 char ch1=’I’; 与整型关系 :ASCII 码表 char ch2=65; 表达式求值时自动变为整型 char a=’A’,b=66; cout<<a<<3+6<<”3+6”; cout<<b+3; P20 例子

Page 7: 第二章 基本数据类型与表达式

枚举型数据 (值域是有限) 1 .自定义类型 格式: enum 枚举名 { 符号表 } ; 枚举名:类型修饰符 eg:enum Weekday {Sun,Mon,Tue,Wed,Thu,Fri,Sat} 2 .与整型的关系: 依次对应 0 , 1 , 2 , 3 ,… 表达式求值, 枚举 整型 C++ 输入整型 枚举型, 输出:枚举 整型

Page 8: 第二章 基本数据类型与表达式

实型数据 类型:

单精度 float ,双精度 double ,长双精度 long double

常量:单精度 f ,长双精度 L 变量:

Page 9: 第二章 基本数据类型与表达式

符号常量与常值变量 符号常量: #define p1 3.1416 常值变量:

在变量定义前加 const ,定义时必须初始化,属性明确。

Page 10: 第二章 基本数据类型与表达式

数值表达式 简单:常量,变量,函数调用 算术操作符:

+ - * / % + - eg:10/3=3 位操作符:

<< ( 相当于 *2) >>( 相当于整除 2) | & ^ ~

赋值操作符 = : 执行顺序从右向左 复合赋值

+= -= *= /= %= <<= >>= |= &= ^= 变量? = 表达式 <=> 变量 = 变量?表达式

Page 11: 第二章 基本数据类型与表达式

增 1 ,减 1 操作 : ++i, i++, --i, i— 区别

前增 / 减 1 :先加 / 减 1 再操作 后增 / 减 1 :先操作再加 / 减 1

执行顺序:从右到左 Eg: int k,d=5; k=++d*2 k= d= .

int k,d=5; k=d++*2 k= d= .12 6 10 6

注意:表达式中,连续出现 + , - 被识别为 ++ , -- ,应避免 ++ (或者 -- )所作用的变量在同一表达式中重复出现。

Page 12: 第二章 基本数据类型与表达式

sizeof 操作符 sizeof (类型修饰符)或 sizeof (表达式) 功能:

获得一数据或数据类型所占空间的字节数

Page 13: 第二章 基本数据类型与表达式

书写表达式注意 1 .字符书写在同一水平线上。 2 .算术运算符与数学中的运算符写法有区别。 3 .用函数实现:乘方,开方,对数,正弦…… [math.h] 4 .括号( )无大中小之分。

Page 14: 第二章 基本数据类型与表达式

类型的自动转化与强制转化 自动转化

规律:短 长, 有符号 无符号, 整型 实型, 低精度 高精度 强制转化

格式: (类型修饰符)表达式 类型修饰符 (表达式) Eg: double (10/3)

Page 15: 第二章 基本数据类型与表达式

逻辑型 修饰符: bool 值域(两个): true false 逻辑型表达式

无操作符的逻辑表达式 逻辑常量: true false 逻辑变量: eg: bool a=true; 逻辑函数调用

关系符表达式 逻辑符表达式

逻辑型与其它数据类型的关系: 非 0 即 true , 0 即 false

Page 16: 第二章 基本数据类型与表达式

关系符表达式 操作符:

== != > < >= <= 互为相反条件: 3 对

结果为逻辑型 优先级高于赋值,低于算术

Page 17: 第二章 基本数据类型与表达式

逻辑符表达式 操作符:

&& ( 与 ) ||( 或 ) !( 非 ) 左右为逻辑型,结果为逻辑型 优先级:! >&&>||

Page 18: 第二章 基本数据类型与表达式

条件 复合条件:用 && 和 || 构成的条件 永真与永假条件 等价条件:

!!E !(X==Y) !(X>Y) !(X<Y) !(E1&&E2) !(E1||E2) E1&&E2 E1||E2

EX!=YX<=YX>=Y

相反条件!E1||!E2

!E1&&!E2摩根定律

E2&&E1E2||E1

结合律

Page 19: 第二章 基本数据类型与表达式

条件表达式 格式:

条件?表达式 1 :表达式 2 功能:

若条件为 true 时表示条件成立,它的值即为表达式 1 的值;若条件为 false 时表示条件不成立,它的值即为表达式 2 的值。 说明:

条件为的值为逻辑值 表达式 1/2 应为同一数据类型 条件表达式可以嵌套

例子: X.>0 ? 1 : (X<0 ? -1 : 0)

Page 20: 第二章 基本数据类型与表达式

自定义类型修饰符 格式:

typeddf 类型修饰符说明; 例如:

typedef int DISTANCE 说明:

去掉保留字 typedef ,与定义一个变量的格式完全相同。

Page 21: 第二章 基本数据类型与表达式

表达式的副作用 副作用

表达式除了产生一个计算结果,还使参与计算的变量值改变 产生副作用原因:

引入副作用操作符(赋值 / 复合赋值;增 1/ 减 1—— 作用于变量的操作)

避免表达式错误,应注意两点 P44 副作用的应用

逗号表达式 表达式语句

没有副作用的表达式作为语句使用是毫无意义的

Page 22: 第二章 基本数据类型与表达式

本章小结 1.         整形和实型(浮点型)是 C++ 中用来表示数值的最主要的数据类型。 C++ 中的整形数据或实型数据的值域及精度都是有限的,不同与数学中的整数或实数。为了满足程序中的不同需要, C++ 提供了不同规格的整形( short, in

t, long 等)和不同规格的实型( fioat, double, 和 long double ),程序设计者可根据程序中对数据在值域,精度等方面的需要,选择适当的数据类型。

2.           字符型是表示字符和字符串的数据类型。 C++ 的字符常量用单引号,字符串常量用双引号。 C++ 字符串以ˊ|0ˊ 为结束标记,ˊ |0ˊ 成为字符串结束符。字符型与整形有着密切的关系:一个字符实际上就是一个作为该字符代码的整数,因此可施加于整数的操作也同样可以施加于字符。由于这一原因,可以用字符表示小整数。

Page 23: 第二章 基本数据类型与表达式

本章小结 3.           枚举型是一种需要由程序设计者定义的数据类型。定义一个枚举型就是规定一组符号,用来表示程序中需要加以区分的不同事物。枚举型 与整型有着密切的关系:枚举型中的每一个符号惟一的对应一个整数,因此就是表示整数的符号常量。在定义枚举型时可以控制枚举符号与整数的对应关系。在程序中,枚举符号可以象整数那样加以利用。 4.           逻辑型的类型修饰符是 bool ,因此也成为布尔型,是用来表达条件的数据类型。逻辑型数据的值只有 true (逻辑真,表达条件成立)或 false (逻辑假,表达条件不成立)两种可能。逻辑型与整型有着密切的关系:当逻辑型数据作为 数值使用时, true 就是 1 , false 就是 0 ;而其他类型的数据作为逻辑数据使用时,一切 0 值转换为 false ,一切非 0 值转换为 true 。

Page 24: 第二章 基本数据类型与表达式

本章小结 5.           数值表达式的主要作用是完成数值计算。常量、变量和函数调用是三种最简单的表达式。通过操作符的连接,可以构造出任意复杂的表达式。当一个表达式中有许多操作符时,操作符的优先级和结合性决定了它们执行的程序。括弧()可以用来控制操作符的执行顺序,()具有最高的优先级。 6.           赋值( = )、符合赋值( += 等)以及增 1 减

1 ( ++ , -- )等是具有副作用的操作符,它们只能作用于变量。并要改变变量的值。对于这些作用于变量的操作符,除后增 1 和后减 1 外,其操作结果就是那个被作用的变量(被改变了值的变量),因此可以 继续作为“作用于变量的操作符”的作用对象。