第2章数据类型与表达式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章
数据类型与表达式
教学目标


(1) 掌握基本数据类型的含义及其定义方法;
(2) 理解常量和变量的概念及类型说明方法; (3) 掌握算术、赋值、关系、逻辑及其他运算符 和表达式的使用方法。
2
基本内容


2.1 数据类型
2.2 常量和变量 2.3 运算符与表达式
3
2.1 数据类型

数据

100100000000B,10B 04400,0777,0100 2304 0x900,0xABC,0xffff
2.
实型常量:

有两种表示形式:
xxxxx.xxxx xxx.Exx
0.0, -2.68, 3.141593, 637.312, 32768.0,…
1.267E20, 1.2E-5…

而有些数据不变化。

C++的数据有两种:常量和变量。

常量通过本身的书写格式就说明了该常量的类型; 变量必须先说明其类型,否则程序无法为该变量分 配存储空间。

变化的量称变量,不变化的量称常量。
12
2.2.1 常量
1.
整型常量

2进制常量 8进制常量 10进制常量 16进制常量 十进制形式:
计算结果是不同类型的值。


25
2.3.1 算术运算符和算术表达式
算术运算符: + * / % 加 减 乘 除 整除取余 算术表达式: 由算术运算符组成的表达式。 运算对象:数值变量、常数、函数、表达式等 运算结果: 数值 优先级: 先乘、除、取余,后加、减 结合性: 从左至右 注意事项:

实际存储的是其编码 可以用整数来表示ASCII码

字符串:例如,"This is a string . "

如何存储?
14
ASCII码

共有128个,使用整数0~127表示。


10个阿拉伯数字 52个英文字母 32控制字符(非显示字符) 34个特殊字符 ‘A‟的值65、‘a‟的值97(差是32) 问号‘?’的值63、‘*’的值42 回车键的值13、ESC键的值27

字符型(char)
占用一个字节存储空间 -27 ~ 27-1 (-128 ~ 127)

布尔型(bool)
即逻辑型,占用一个字节存储空间,0表示false,1表示true

无值型(void)
值域为一空集,主要用来说明函数的参数或返回值类型,表 示无参数或无返回值。
11
2.2 常量和变量

在实际数据处理过程中,有些数据经常变化,
(5) 类型修饰符

在基本数据类型前加类型修饰符,可以改 变数据表示的范围。常用的有:



unsigned —— 无符号 long —— 长型 short —— 短型
例如:
unsigned char 表示范围变为0~255 unsigned short int 表示范围变为0~65535
23
例2-4 整型数据的溢出
21
(4)变量初始化

变量初始化就是给变量赋初值,可采用以下任 意一种方式:

先定义,再赋初值
例如:
int sum,fac; sum=0;fac=1;

定义时赋值(有两种形式)
例如:
int count = 0; char c=„A‟;
或 或
int count (0); char c(„A‟);
22
36
赋值表达式:
(x + = 3 ) == ( y- = 1);
字符表达式:
‘a‟ ! = „A‟ ;
34
运算规则

关系成立,结果为‘真’(非0);否则, 结果为‘假’(0)。
例如: a=3,b=5; a>=b a< b a == b a! = b
结果为0 结果为1 结果为0 结果为1

结合性:从左到ቤተ መጻሕፍቲ ባይዱ。
占用四个字节存储空间 -2^31~2^31-1
8
短整数验证


#include <iostream> using namespace std; int main() { short int x; cout<<"请输入一个整数进行验证"<<endl; cin>>x; cout<<"输入的值是"<<x<<endl; system("pause"); return 0; }
35
关系表达式值测试实例


#include <iostream> using namespace std; int main() { int a=5,b=6; bool s=true; s=(a>=b); //本句话测试关系表达式 cout<<s<<endl; system("pause"); return 0; }
指数形式:

3.
字符型常量 'a', 'A', '1', ' ', '+',
4.
5.
字符串常量 "Visual C++", "12.34", "This is a string.\n", …
布尔型常量:true 和 false
13
文字数据表示

文字数据有两种:

单个字符: 例如,‘A ‟、„+„ 、 „\0‟ 、 ‘\‟‟
9
实型

可采用浮点类型和双精度类型表示:


浮点类型 使用4个字节存放数据,10-38~1038, 有效数字7位 双精度类型数据 使用8个字节存放数据,10-308~10308,有效数字15位
31 24 23 16 15 8
7
0
尾数部分 浮点型存储格式
指数部分
10
字符型、布尔型、无值型
7 0

ASCII码对应的字符

助记码 转义字符


'\n'(换行), '\r'(回车), '\t'(横向跳格), '\''(单引号), …
15
字符串存储方式
'M'
'O'
'N'
'D'
'A'
'Y'
'\0'
图 3-2字符串“MONDAY”的存储方式 字符串的存储方式
16
字符和字符串的区别

字符
4
数据类型

计算机只能存放二进制数据。不同类型事物的 数据如何区分和描述?由此产生数据类型。

不同类型的数据占据不同长度的存储单元。


不同类型的数据对应不同的值域范围。
不同类型的数据对应不同的操作(运算)及规则。

数据类型越丰富,求解能力越强大。
5
C++的数据类型
6
基本数据类型

数据类型


是用单引号括起来的单个字符,它在存储器中占1个字节;

字符串

是用双引号括起来的一串字符,它在存储器中占n+1个字节, 即字符串的结束符‘\0’也占1个字节的位置。

例如:

‘A’和‚A”是有区别的;前者是字符常数,后者是字符串常数。
17
2.2.2 变量
定义: 其值可以改变的量称为变量。 变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量

后缀形式
V++(- - ),先引用,再运算。
27
自增和自减运算符的用法
表达式
i++ i-++i --i
表达式的值
i i i+1 i-1
副作用
i的值增大1 i的值减少1 i的值增大1 i的值减少1
28
例:++和-
假设a= 1:

x = ( a++) * (a++) ,结果? x = ( a++) * (++ a) ,结果? x = (++ a) * (++ a) ,结果?
32
运算符 > < ==
名称
大于 小于 等于
例子
a>b a<b a==b
关系
a大于b a小于b a等于b
!= >=
<=
不等于 大于等于
小于等于
a!=b a>=b
a<=b
a不等于b a大于等于b
a小于等于b
33
运算对象


算术表达式:
x+y >= x*y ;
关系表达式:
(a > b) == (c < d);


x*-y 6x 5X 2
应写成 x*(-y) 应写成 6*x 应写成 5*X*X
26
自增、自减运算符

‚++‛和‚--‛是自增、自减运算符


i++ 等价于 i=i+1 i-- 等价于 i=i-1

运算规则 只能用于变量和指针
合法: i++ ;

非法: ++(a+b);
前缀形式
++(- -)V,先运算,再引用。
20
(3)变量使用规则

先定义,后使用
例如: int a,b,c; a=1;b=2;c= a+b;
下列用法是错误的(有几处?):
#include <iostream> using namespace std; int main() { int a; cin>>b; int c=a+b; cout<<c<<endl; return 0; }
//整数除法 //整数求余 //double与int运算
30
2.3.2 关系运算符和关系表达式
关系运算

是对两个运算数进行大小关系等的比较。
用关系运算符将两个表达式(可以是算术表达式或关 系表达式、逻辑表达式、赋值表达式、字符表达式) 连接起来的式子。
关系表达式

31
2.3.2 关系运算符和关系表达式
关系运算符:
>
<
==
等于
>=
大于等于
<=
小于等于
!=
不等于
大于 小于
关系表达式:由关系运算符组成的表达式。 计算结果:逻辑值(‚真‛和‚假‛) 优先级:


{>,>=,<,<=} 高于 { == , !=}
赋值运算 < 关系运算 < 算术运算
运算对象:算术、关系、赋值、字符表达式
名分配一个内存地址。 在程序中从变量中取值,实际上是通过变量名找到相应的内存地址,从其 存储单元中读取数据。 用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效 字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。
变量命名规则 变量使用规则 变量初始化 变量引用 类型修饰符
类型说明浮 占用字节
char short int float double 1个 2个 4个 4个 8个

字符型 短整数 整型 浮点型 双精度型
7
整型
短整型
15 8 7 0

占用两个字节存储空间 -2^15~2^15-1(-32768~32767)

整型、长整型
24 31 23 16 15 8 7 0


程序的主要任务是对数据进行处理,而数据有多种类 型,如数值数据、文字数据、图像数据以及声音数据 等。 不同类型的数据在存储器中存放的格式不同 程序中对各种数据进行处理之前都要对其类型 (也就 是存储格式) 预先加以说明,其目的是:


便于为这些数据分配相应的存储空间 说明了程序处理数据时应采用何种具体运算方法
29
类型不同的数据之间的混合算术运算

不同类型的数据在参加运算之前会自动转换成相同的类 型, 然后再进行运算。 转换的原则:由低级向高级转换
char -> int -> float -> double 例2-1 算术运算 #include <iostream> using namespace std; int main() { int x=7, y=3; double d=7.0; cout<<x<<"/"<<y<<"="<<x/y<<endl; cout<<x<<"%"<<y<<"="<<x%y<<endl; cout<<d<<“/”<<y<<“=”<<d/y<<endl; return 0; }
19
(2) 变量(标识符)命名规则
• • • •
变量名只能由字母、数字或下划线组成; 变量名的第一个字符必须是字母或下划线; 变量名长度不能超过编译器规定的长度; 不要用保留字定义变量名。
合法变量名:
a、 b1、 _area、m_nCount
不合法变量名:
1-name、 student one、 float *account
18
(1)变量定义

变量的定义:用基本数据类型描述符来说明对象
变量类型 变量名表;

例:
int i, j, k; //说明了3个整型变量 short len; //说明了1个短整型变量 float average; //说明了1个浮点类型的变量 double baseSalary, bonus, totalSale, additionalBonus, Salary; //说明了5个双精度类型的变量 bool sex; //说明了1个布尔型变量 char c1, c2; //说明了2个字符型变量
#include <iostream.h> int main() { short a, b; a=32767; b=a+1; cout<<"a="<<a<<endl<<"b="<<b<<endl; return 0; }
24
2.3 运算符与表达式

表达式是由运算符将运算对象 (如常数, 变量和 函数等) 连接起来的具有合法语义的式子。 不同类型的表达式按不同运算规则进行计算。
相关文档
最新文档