赋值运算符课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机工程学院 伍俊明
14
3.5 字符型数据
一、字符常量 字符常量:用一对单引号括起来的单个字符。
正确: ‘a’,‘A’ ,‘6’ ,‘$’ ,‘?’ ,‘\n’ 错误: ‘abc’、“a”
控制字符(转义符):以反斜杠 ‘\’开头
\n 换行 \t 横向跳格 \r 回车 \\ 反斜杠 \ddd ddd表示1到3位八进制数字 \xhh hh表示1到2位十六进制数字
long double 128 10-4931~104932 18~19 位
浮点型变量的定义及浮点数的舍入误差 float x=3.14159, y; double u, v=-1.320; long double t; 运行结果: 123456.789e5
计算机工程学院 伍俊明
13
3.4 浮点型数据
计算机工程学院
伍俊明
16
3.5 字符型数据
四、字符串常量 字符串常量:用一对双引号括起来的若干字符 “Hello”, “¥1234.56”,“a” 字符型变量不能当作字符串变量来作用 char c; c=“a”; 但c=‘a’; 字符串的存储结构:在末字符后面跟一个 ‘\0’ CHINA a
C H I N A \0
四、浮点数的类型 C语言编译系统将浮点数视为双精度浮点数来处理。 例:f是一个浮点型变量 f=2.45678*4523.65;
•
系统先把2.45678和4523.65作为双精度数,然后 进行相乘的运算,得到的乘也是一个双精度数。最 后取其前7位赋给浮点型变量f。如是在数的后面加 字母f或F(如1.65f, 654.87F),这样编译系统就会 把它们按单精度(32位)处理
r
2.0
伍俊明
变量名 变量值 存储单元
计算机工程学院
5
3.2 常量与变量
变量的命名规则:以字母或下划线打头的字母、数 字和下划线组成的序列,C标准至少识别31个。 举例:
sum,_total, month, Student_name,lotus_1_2_3, BASIC, li_ling,r,R M.D.John, ¥123,3D64,a>b
算术表达式及运算符的优先级:
算术表达式是由运算对象(常量、变量、函数)、运算符和左右括号 连接而成的式子 先乘除、后加减,同级运算自左向右
例:a*b/c-1.5+′a′
计算机工程学院 伍俊明
21
3.8 算术运算符和算术表达式
二、算术运算符和算术表达式
强制类型转换运算符:(类型名)(表达式) 例:(double)a,(int)(x+y),(float)(5%3) 注意:(int)x+y只将x转换成整型数,然后与y相加
数据类型 构造类型
指针类型
枚举类型
enum
空类型(无值类型) void
计算机工程学院 伍俊明
2
3.2 常量与变量
3.2.1 常量与符号常量
常量:在程序运行的过程中其值不能被改变的量
常量区分为不同的类型:
整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 ‘a’, ‘b’,‘2’ 字符串 “a”, “ab”, “1232”
i j 10 -10 0 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 1 0
计算机工程学院 伍俊明
7
符号位
3.3 整型数据
三、变量的分类 根据数值范围分三类: 基本整型 int 短整型 short int,或short 长整型 long int,或long 按有无符号分类,共6小类 基本整型 [singed] int, unsigned int 短整型 [signed] short [int],unsigned short [int] 长整型 [signed] long [int],unsigned long [int]
计算机工程学院 伍俊明
18
3.7 各类型数值间的混合运算
• 假设:i是整型变量,f是float型变量, 数值型数据可以混合运算 是double 型变量,e是long型变量。 整型:int,d short ,long 试分析表达式: 浮点型:float, double,long double 10+‘a’+ i*f - d/e 不同类型的数据混合运算时,必须先转换成同一类型的数据 ,然后才能运算,这种转换是自动进行的
自增、自减运算符:只对变量实施,自右向左进行 ++i,--i /*在使用i之前,先使i的值加(减)1*/ i++,i-- /*在使用i之后,再使i的值加(减)1 */ 假设:i等于3,分析执行(1)j=++i; (2)j=i++之后i和j之值 假设:i等于 3,分析执行j=-i++之后i和j之值
计算机工程学院 伍俊明
22
3.8 算术运算符和算术表达式
三、表达式使用中的问题说明
ANSI未规定子表达式的求值顺序 如:a=f1()+f2() 中,先计算f1(),还是先计算f2()? 又如:i=3; 表达式(i++)+(i++)+(i++) 在有的系统中为12(i为6),有的系统中为9(i为6) 为避免误解,建议增加有益的括号 如:i+++j应写成 (i++)+j的形式 一调用函数时,实参数的求值顺序,C标准并无统一规定 例:printf(“%d、 %d”, i, i++)有的输出3、3,有的输出4、3 建议:j=i++; printf(“%d、%d”, j, i)
计算机工程学院
a \0
伍俊明
17
3.6 变量赋初值
变量初始化:在定义变量的同时给出其初值 例:int a=3; float f=3.56, g; char c1, c2=‘a’; /*只对c2赋了初值*/ int b=3, c=3, d=3; /*对a、b、c赋了初值*/ 注意: 不能通过连等方式赋初值 int b=c=d=3 初值只赋给‘=’前的一个变量 int b, c, d=3;/*只将d赋值为3,bc未赋初值*/
计算机工程学院
伍俊明
11
3.4 浮点型数据
一、浮点型常量的表示方法
十进制小数表示法:0.123,-2.345,0.0 指数形式:123e3,-3.456E-2
二、浮点型变量的存储结构
+ 符号位 .314159 小数部分
计算机工程学院
1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e
计算机工程学院 伍俊明
20
3.8 算术运算符和算术表达式
二、算术运算符和算术表达式
基本的算术运算符
+ (加法运算符,或正值运算符。如:3+5、+3) - (减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3,5.0/3.0) % (模运算符,或称求余运算符,%两侧均应为整型数据,如:7% 4的值为3)。
计算机工程学院 伍俊明
15
3.5 字符型数据
二、字符变量 • 说明:程序的作用是将两个小写字母a和b转换成 char c1, c2=‘b’, 大写字母 A和Bc3; 。从ASCII代码表中可以看到每一个 c1=‘a’; c3=‘ ’; 小写字母比它相应的大写字母的 ASCII c2 c1 码大32。 C语言允许字符数据与整数直接进行算术运算。 三、字符数据的存储格式 97 98 一个字符在内存中占用一个字节 字符以ASCII码方式存储 01100001 01100010 字符可以ASCII码参与运算,大小写字符可以转换
单精度浮点数占4个字节,双精度浮点数占8个字节 浮点数按指数方式存储 1 指数部分
伍俊明
3.14159
12
3.4 浮点型数据
三、浮点数的分类 说明:一个浮点型变量只能保证的有效数字是7位 浮点型数据分单精度、双精度和长双精度三类 类型 位数 范围 有效数字 有效数字,后面的数字是无意义的,并不准确地 float 32 10-37 ~ 1038 6 ~7 位 表示该数。应当避免将一个很大的数和一个很小 -307~10308 double 64 10 15~16 位 的数直接相加或相减,否则就会“丢失”小的数
计算机工程学院 伍俊明
23
3.9 赋值运算符与赋值表达式
计算机工程学院
伍俊明
3
3.2 常量与变量
符号常量——通过符号名代表一个常量π
#define PI 3.14159 #include <stdio.h> void main(){ float r, c, s; r=2.0; c=2*PI*r; • 说明:PI已经定义为符号常量,以 s=PI*r*r; 后给它赋值是错误的,如 printf(“r=%f, c=%f, s=%f\n”, r, c, s); PI=3.14; }
注意:
• 变量定义的一般形式: 变量名必须“先定义、后引用” 数据类型 变量列表;
变量名尽量“见名知义”,便于理解 每个变量定义时必须指明其类型 例:int i, j, k; float r, c, s;
计算机工程学院 伍俊明
6
3.3 整型数据
一、 整型数据的表示方法 十进制数:123,-456,4 八进制数:0123(等于十进制数83),-011 十六进制数:0x123(等于十进制数291),-0x34 二、 整型数据在内存中的存放形式 TC中占2个字节,VC++6.0中占4个字节 正数原码表示,负数补码表示
高 double longe unsigned 低 float
int
char、 short
计算机工程学院 伍俊明
19
3.8 算术运算符和算术表达式
一、C语言运算符简介
(1)算术运算符 (+ - * / %) (2)关系运算符 (><==>=<=!=) (3)逻辑运算符 (!&&||) (4)位运算符 (<< >> ~ |∧&) (5)赋值运算符 (=及其扩展赋值运算符) (6)条件运算符 (?:) (7)逗号运算符 (,) (8)指针运算符 (*和&) (9)求字节数运算符(sizeof) (10)强制类型转换运算符( (类型) ) (11)分量运算符(.->) (12)下标运算符([ ]) (13)其他 (如函数调用运算符())
计算机工程学院
伍俊明
10
3.3 整型数据
五、整型常量的类型 范围在-32768~+32767之间的默认为int型,超出者 默认为long int型; 一些编译系统中short int与int型数据在内存中存储 结构相同,因此两者没有区别; 整型常量后面加一个字母u或U,如12345u,表示无 符号整数,-12345u按补码53191视为无符号整数; 整型常量后面加一个字母l或L,如123l、456L,表 示长整数。
第3章 数据类型、运算符与表达式
本章教学内容:
本章重点:
3.1 C语言的数据类型 3.2 常量与变量 3.3 整型数据 3.4 浮点型数据 3.5 字符型数据 3.6 变量赋初值 3.7 各类数值型数据间的混合运算 3.8 算术运算符和算术表达式 3.9 赋值语句和赋值表达式 3.10 逗号运算符和逗号表达式
计算机工程学院 伍俊明
8
3.3 整型数据
计算机工程学院
伍俊明
9
3.3 整型数据
四、整型变量的定义——一般置于函数的开头
整型数据的运算: 加:+ 例3.2 整型变量的定义与使用 减:乘:* 整除:/ 取余:% 例3.3 整型数据的溢出
int a, b; unsigned short c,d; long e, f;
计算机工程学院 伍俊明地
基本数据类型 常见运算符 算术表达式 赋值语句
Байду номын сангаас
1
3.1 C语言的数据类型
数据类型——描述数据的存储结构、取值范围、操作种类等
C语言中的数据类型
整型 int
基本类型
字符型 char 单精度实型float 实型(浮点型) 双精度实型double 数组类型 结构类型 联合类型 struct union
所有符号常量将在编译前进行替换!
计算机工程学院 伍俊明
4
3.2 常量与变量
3.2.2 变量
变量:在程序执行的过程中其值可以改变的量 变量代表内存中具有特定属性的一个存储单元,该单 元的编号就是内存地址,该单元中存放的数据就是变 量的值。为方便使用,可给该单元取一个名字,叫做 变量名。
210006 存储单元
14
3.5 字符型数据
一、字符常量 字符常量:用一对单引号括起来的单个字符。
正确: ‘a’,‘A’ ,‘6’ ,‘$’ ,‘?’ ,‘\n’ 错误: ‘abc’、“a”
控制字符(转义符):以反斜杠 ‘\’开头
\n 换行 \t 横向跳格 \r 回车 \\ 反斜杠 \ddd ddd表示1到3位八进制数字 \xhh hh表示1到2位十六进制数字
long double 128 10-4931~104932 18~19 位
浮点型变量的定义及浮点数的舍入误差 float x=3.14159, y; double u, v=-1.320; long double t; 运行结果: 123456.789e5
计算机工程学院 伍俊明
13
3.4 浮点型数据
计算机工程学院
伍俊明
16
3.5 字符型数据
四、字符串常量 字符串常量:用一对双引号括起来的若干字符 “Hello”, “¥1234.56”,“a” 字符型变量不能当作字符串变量来作用 char c; c=“a”; 但c=‘a’; 字符串的存储结构:在末字符后面跟一个 ‘\0’ CHINA a
C H I N A \0
四、浮点数的类型 C语言编译系统将浮点数视为双精度浮点数来处理。 例:f是一个浮点型变量 f=2.45678*4523.65;
•
系统先把2.45678和4523.65作为双精度数,然后 进行相乘的运算,得到的乘也是一个双精度数。最 后取其前7位赋给浮点型变量f。如是在数的后面加 字母f或F(如1.65f, 654.87F),这样编译系统就会 把它们按单精度(32位)处理
r
2.0
伍俊明
变量名 变量值 存储单元
计算机工程学院
5
3.2 常量与变量
变量的命名规则:以字母或下划线打头的字母、数 字和下划线组成的序列,C标准至少识别31个。 举例:
sum,_total, month, Student_name,lotus_1_2_3, BASIC, li_ling,r,R M.D.John, ¥123,3D64,a>b
算术表达式及运算符的优先级:
算术表达式是由运算对象(常量、变量、函数)、运算符和左右括号 连接而成的式子 先乘除、后加减,同级运算自左向右
例:a*b/c-1.5+′a′
计算机工程学院 伍俊明
21
3.8 算术运算符和算术表达式
二、算术运算符和算术表达式
强制类型转换运算符:(类型名)(表达式) 例:(double)a,(int)(x+y),(float)(5%3) 注意:(int)x+y只将x转换成整型数,然后与y相加
数据类型 构造类型
指针类型
枚举类型
enum
空类型(无值类型) void
计算机工程学院 伍俊明
2
3.2 常量与变量
3.2.1 常量与符号常量
常量:在程序运行的过程中其值不能被改变的量
常量区分为不同的类型:
整型 100,125,-100,0 实型 3.14 , 0.125,-3.789 字符型 ‘a’, ‘b’,‘2’ 字符串 “a”, “ab”, “1232”
i j 10 -10 0 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 1 0
计算机工程学院 伍俊明
7
符号位
3.3 整型数据
三、变量的分类 根据数值范围分三类: 基本整型 int 短整型 short int,或short 长整型 long int,或long 按有无符号分类,共6小类 基本整型 [singed] int, unsigned int 短整型 [signed] short [int],unsigned short [int] 长整型 [signed] long [int],unsigned long [int]
计算机工程学院 伍俊明
18
3.7 各类型数值间的混合运算
• 假设:i是整型变量,f是float型变量, 数值型数据可以混合运算 是double 型变量,e是long型变量。 整型:int,d short ,long 试分析表达式: 浮点型:float, double,long double 10+‘a’+ i*f - d/e 不同类型的数据混合运算时,必须先转换成同一类型的数据 ,然后才能运算,这种转换是自动进行的
自增、自减运算符:只对变量实施,自右向左进行 ++i,--i /*在使用i之前,先使i的值加(减)1*/ i++,i-- /*在使用i之后,再使i的值加(减)1 */ 假设:i等于3,分析执行(1)j=++i; (2)j=i++之后i和j之值 假设:i等于 3,分析执行j=-i++之后i和j之值
计算机工程学院 伍俊明
22
3.8 算术运算符和算术表达式
三、表达式使用中的问题说明
ANSI未规定子表达式的求值顺序 如:a=f1()+f2() 中,先计算f1(),还是先计算f2()? 又如:i=3; 表达式(i++)+(i++)+(i++) 在有的系统中为12(i为6),有的系统中为9(i为6) 为避免误解,建议增加有益的括号 如:i+++j应写成 (i++)+j的形式 一调用函数时,实参数的求值顺序,C标准并无统一规定 例:printf(“%d、 %d”, i, i++)有的输出3、3,有的输出4、3 建议:j=i++; printf(“%d、%d”, j, i)
计算机工程学院
a \0
伍俊明
17
3.6 变量赋初值
变量初始化:在定义变量的同时给出其初值 例:int a=3; float f=3.56, g; char c1, c2=‘a’; /*只对c2赋了初值*/ int b=3, c=3, d=3; /*对a、b、c赋了初值*/ 注意: 不能通过连等方式赋初值 int b=c=d=3 初值只赋给‘=’前的一个变量 int b, c, d=3;/*只将d赋值为3,bc未赋初值*/
计算机工程学院
伍俊明
11
3.4 浮点型数据
一、浮点型常量的表示方法
十进制小数表示法:0.123,-2.345,0.0 指数形式:123e3,-3.456E-2
二、浮点型变量的存储结构
+ 符号位 .314159 小数部分
计算机工程学院
1e3、1.8e-3、-123e-6、-.1e-3 e3、2.1e3.5、.e3、e
计算机工程学院 伍俊明
20
3.8 算术运算符和算术表达式
二、算术运算符和算术表达式
基本的算术运算符
+ (加法运算符,或正值运算符。如:3+5、+3) - (减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3,5.0/3.0) % (模运算符,或称求余运算符,%两侧均应为整型数据,如:7% 4的值为3)。
计算机工程学院 伍俊明
15
3.5 字符型数据
二、字符变量 • 说明:程序的作用是将两个小写字母a和b转换成 char c1, c2=‘b’, 大写字母 A和Bc3; 。从ASCII代码表中可以看到每一个 c1=‘a’; c3=‘ ’; 小写字母比它相应的大写字母的 ASCII c2 c1 码大32。 C语言允许字符数据与整数直接进行算术运算。 三、字符数据的存储格式 97 98 一个字符在内存中占用一个字节 字符以ASCII码方式存储 01100001 01100010 字符可以ASCII码参与运算,大小写字符可以转换
单精度浮点数占4个字节,双精度浮点数占8个字节 浮点数按指数方式存储 1 指数部分
伍俊明
3.14159
12
3.4 浮点型数据
三、浮点数的分类 说明:一个浮点型变量只能保证的有效数字是7位 浮点型数据分单精度、双精度和长双精度三类 类型 位数 范围 有效数字 有效数字,后面的数字是无意义的,并不准确地 float 32 10-37 ~ 1038 6 ~7 位 表示该数。应当避免将一个很大的数和一个很小 -307~10308 double 64 10 15~16 位 的数直接相加或相减,否则就会“丢失”小的数
计算机工程学院 伍俊明
23
3.9 赋值运算符与赋值表达式
计算机工程学院
伍俊明
3
3.2 常量与变量
符号常量——通过符号名代表一个常量π
#define PI 3.14159 #include <stdio.h> void main(){ float r, c, s; r=2.0; c=2*PI*r; • 说明:PI已经定义为符号常量,以 s=PI*r*r; 后给它赋值是错误的,如 printf(“r=%f, c=%f, s=%f\n”, r, c, s); PI=3.14; }
注意:
• 变量定义的一般形式: 变量名必须“先定义、后引用” 数据类型 变量列表;
变量名尽量“见名知义”,便于理解 每个变量定义时必须指明其类型 例:int i, j, k; float r, c, s;
计算机工程学院 伍俊明
6
3.3 整型数据
一、 整型数据的表示方法 十进制数:123,-456,4 八进制数:0123(等于十进制数83),-011 十六进制数:0x123(等于十进制数291),-0x34 二、 整型数据在内存中的存放形式 TC中占2个字节,VC++6.0中占4个字节 正数原码表示,负数补码表示
高 double longe unsigned 低 float
int
char、 short
计算机工程学院 伍俊明
19
3.8 算术运算符和算术表达式
一、C语言运算符简介
(1)算术运算符 (+ - * / %) (2)关系运算符 (><==>=<=!=) (3)逻辑运算符 (!&&||) (4)位运算符 (<< >> ~ |∧&) (5)赋值运算符 (=及其扩展赋值运算符) (6)条件运算符 (?:) (7)逗号运算符 (,) (8)指针运算符 (*和&) (9)求字节数运算符(sizeof) (10)强制类型转换运算符( (类型) ) (11)分量运算符(.->) (12)下标运算符([ ]) (13)其他 (如函数调用运算符())
计算机工程学院
伍俊明
10
3.3 整型数据
五、整型常量的类型 范围在-32768~+32767之间的默认为int型,超出者 默认为long int型; 一些编译系统中short int与int型数据在内存中存储 结构相同,因此两者没有区别; 整型常量后面加一个字母u或U,如12345u,表示无 符号整数,-12345u按补码53191视为无符号整数; 整型常量后面加一个字母l或L,如123l、456L,表 示长整数。
第3章 数据类型、运算符与表达式
本章教学内容:
本章重点:
3.1 C语言的数据类型 3.2 常量与变量 3.3 整型数据 3.4 浮点型数据 3.5 字符型数据 3.6 变量赋初值 3.7 各类数值型数据间的混合运算 3.8 算术运算符和算术表达式 3.9 赋值语句和赋值表达式 3.10 逗号运算符和逗号表达式
计算机工程学院 伍俊明
8
3.3 整型数据
计算机工程学院
伍俊明
9
3.3 整型数据
四、整型变量的定义——一般置于函数的开头
整型数据的运算: 加:+ 例3.2 整型变量的定义与使用 减:乘:* 整除:/ 取余:% 例3.3 整型数据的溢出
int a, b; unsigned short c,d; long e, f;
计算机工程学院 伍俊明地
基本数据类型 常见运算符 算术表达式 赋值语句
Байду номын сангаас
1
3.1 C语言的数据类型
数据类型——描述数据的存储结构、取值范围、操作种类等
C语言中的数据类型
整型 int
基本类型
字符型 char 单精度实型float 实型(浮点型) 双精度实型double 数组类型 结构类型 联合类型 struct union
所有符号常量将在编译前进行替换!
计算机工程学院 伍俊明
4
3.2 常量与变量
3.2.2 变量
变量:在程序执行的过程中其值可以改变的量 变量代表内存中具有特定属性的一个存储单元,该单 元的编号就是内存地址,该单元中存放的数据就是变 量的值。为方便使用,可给该单元取一个名字,叫做 变量名。
210006 存储单元