关于运算符与表达式课件
合集下载
表达式和运算符.ppt

例如: i=3; j=i++;
结果 j的内容为3 i的内容为4
i=3; j=++i;
j的内容为4 i的内容为4
注意:
❖增1/减1运算符的优先级高于算术运算符, 与单目运算符-(取负)、!(逻辑非)的 优先级相同,结合方向自右至左。 例如表达式 -i++ 等价于 -(i++)
❖副作用:printf(“ %d ,%d”,i,i++);在不同 的编译环境下结果有可能不同。
运算符
+ -
* / %
+ -
表2-1 基本运算符列表
功能 求正 求负 乘法 除法 求余 加法 减法
操作数个数 单目 单目 双目 双目 双目 双目 双目
结合方向 自右至左 自右至左 自左至右 自左至右 自左至右 自左至右 自左至右
优先级 高
低
4、算术表达式的解
就是经过算术运算得到的表达式的值。 i3再n*t (对x8=-表21)2达的,y式解=3求是4; 值18时,先按运算符的优先级别高 低次xF+序ayb-执((-y4行-5x)),+的2再3解的按是解运24是算6符8的结合方向进行结合。
2.9 运算符与表达式
• 运算是对数据进行加工的过程,用 来表示各种不同运算的符号称为运 算符。
• 表达式:是用运算符与圆括号将操 作数连接起来的式子。
C运算符(共有13类)
1. 基本算术运算符 + – / % 2. 关系运算符 > < == >= <= != 3. 逻辑运算符 ! && ¦¦
4. 强制类型转换运算符 ( 类型 ) 5. 自增自减运算符 ++ --
C语言表达式和算术运算符ppt课件

如:17%-3=2 -19%4=-3 -15%-7=-1
5%1.5是非法的算术表达式
2)除法运算符“/”进行求商运算。对于不同类型的运算对象, 除法表达式计算结果的类型也会不同。
例:计算x/y 如果x,y为整型,小数部分舍去,没有四舍五入 如果x,y中有一个为实型量,则x,y都被化为double类型进
结合性: 同一优先级,自 左向右,为左结合性,反 之为右结合性。
初等运算符( [ ]、( )、 . 、-> )
↓ 单目运算符
↓ 算术算
符!)
↓ 赋值运算符
↓ 逗号运算符
.
4
3.5.2算术运算符和算术表达式
1、基本的算术运算符:
+ (加法运算符,或正值运算符。如:3+5、+3) - (减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3) % (模运算符,或称求余运算符,%两侧均应为整型数据,
行计算,结果为double
.
8
算术运算符和算术表达式
运算实例: x,y为整型量:5/2结果为2,整型量
2/5结果为0,整型量 x,y其中一个为实型量 5.0/2或 5.0/2.0或 5.0/2.0结果为2.5,实型量
.
9
练习:
例 1/2 = 0 -5/2 = -2 -5/2.0 = -2.5
例 5%2 = 1 -5%2 = -1 5%-2 = 1 1%10 = 1 5%1 = 0 5.5%2 =
第3章 表达式和运算符(3)
.
1
3.5 运算符和表达式
3.5.1 运算符的种类、优先级和结合性 3.5.2 算术运算符和算术表达式 3.5.3 赋值运算符和赋值表达式 3.5.4 增量运算符和增量表达式 3.5.8 逗号运算符和逗号表达式
5%1.5是非法的算术表达式
2)除法运算符“/”进行求商运算。对于不同类型的运算对象, 除法表达式计算结果的类型也会不同。
例:计算x/y 如果x,y为整型,小数部分舍去,没有四舍五入 如果x,y中有一个为实型量,则x,y都被化为double类型进
结合性: 同一优先级,自 左向右,为左结合性,反 之为右结合性。
初等运算符( [ ]、( )、 . 、-> )
↓ 单目运算符
↓ 算术算
符!)
↓ 赋值运算符
↓ 逗号运算符
.
4
3.5.2算术运算符和算术表达式
1、基本的算术运算符:
+ (加法运算符,或正值运算符。如:3+5、+3) - (减法运算符,或负值运算符。如:5-2、-3) * (乘法运算符。如:3*5) / (除法运算符。如:5/3) % (模运算符,或称求余运算符,%两侧均应为整型数据,
行计算,结果为double
.
8
算术运算符和算术表达式
运算实例: x,y为整型量:5/2结果为2,整型量
2/5结果为0,整型量 x,y其中一个为实型量 5.0/2或 5.0/2.0或 5.0/2.0结果为2.5,实型量
.
9
练习:
例 1/2 = 0 -5/2 = -2 -5/2.0 = -2.5
例 5%2 = 1 -5%2 = -1 5%-2 = 1 1%10 = 1 5%1 = 0 5.5%2 =
第3章 表达式和运算符(3)
.
1
3.5 运算符和表达式
3.5.1 运算符的种类、优先级和结合性 3.5.2 算术运算符和算术表达式 3.5.3 赋值运算符和赋值表达式 3.5.4 增量运算符和增量表达式 3.5.8 逗号运算符和逗号表达式
第三章运算符与表达式PPT课件

注:优先级和结合方向的区别:前者是针对”优先级别不同”的情况,后者 是针对”优先级别相同”的情况。
.
3
3.2 算术运算 1、双目算术运算 ①运算符:+,-,*,/(除),%(模或求余)。 ②优先级别:+,-是同级别的;*,/,%是同级别的, 且高于+,-的级别。 ③结合方向:均为左结合。 ④ +,-,*运算的运算规则、运算量的类型与结果类型 ⑴运算规则与数学中的运算规则相同; ⑵要求参加运算的两个运算量可以是整型数据,也可以 是实型数据; ⑶如果两个运算量都是整型数据,则结果也是整型数据; 如果两个运算量至少有一个是实型数据,则结果是 double型数据。
.
5
例2-1 已知变量a是一个两位正整数,用C语言的表达式 分别表示a的个位和十位。
解答: a的个位的C语言的表达式:a%10,
a的十位的C语言的表达式:a/10。
做
课堂实践4
一 做
已知变量a是一个三位正整数,用C语言
的表达式分别表示a的个位、十位和百位。
解答: a的个位的C语言的表达式:a%10,
.
7
2、复合的赋值运算 ①复合的赋值运算符:自反加赋值:+=;自反减赋值;-=; 自反乘赋值:*=;自反除赋值:/=;自反模赋值:%=。 ②运算规则:a+=b 等价于 a=a+b; a-=b 等价于 a=a-b; a*=b 等价于 a=a*b; a/=b 等价于 a=a/b; a%=b 等价于 a=a%b。 ③优先级别:与赋值运算符同级。 ④结合方向:右结合。 例2-2 设有如下定义和语句 int a=5,b=3,c; c=b*=a+2; 表达式c=b*=a+2相当于c=(b=(b*(a+2))),分析表达式 c=b*=a+2执行前后各变量在内存中的变化情况:
.
3
3.2 算术运算 1、双目算术运算 ①运算符:+,-,*,/(除),%(模或求余)。 ②优先级别:+,-是同级别的;*,/,%是同级别的, 且高于+,-的级别。 ③结合方向:均为左结合。 ④ +,-,*运算的运算规则、运算量的类型与结果类型 ⑴运算规则与数学中的运算规则相同; ⑵要求参加运算的两个运算量可以是整型数据,也可以 是实型数据; ⑶如果两个运算量都是整型数据,则结果也是整型数据; 如果两个运算量至少有一个是实型数据,则结果是 double型数据。
.
5
例2-1 已知变量a是一个两位正整数,用C语言的表达式 分别表示a的个位和十位。
解答: a的个位的C语言的表达式:a%10,
a的十位的C语言的表达式:a/10。
做
课堂实践4
一 做
已知变量a是一个三位正整数,用C语言
的表达式分别表示a的个位、十位和百位。
解答: a的个位的C语言的表达式:a%10,
.
7
2、复合的赋值运算 ①复合的赋值运算符:自反加赋值:+=;自反减赋值;-=; 自反乘赋值:*=;自反除赋值:/=;自反模赋值:%=。 ②运算规则:a+=b 等价于 a=a+b; a-=b 等价于 a=a-b; a*=b 等价于 a=a*b; a/=b 等价于 a=a/b; a%=b 等价于 a=a%b。 ③优先级别:与赋值运算符同级。 ④结合方向:右结合。 例2-2 设有如下定义和语句 int a=5,b=3,c; c=b*=a+2; 表达式c=b*=a+2相当于c=(b=(b*(a+2))),分析表达式 c=b*=a+2执行前后各变量在内存中的变化情况:
C语言运算符和表达式ppt课件

依次分解出个位数字、十位数字、百位数字和千 位数字,并分别放到字符变量c1、c2、c3和c4 中。
怎么分解?
利用除法、取模等运算。
顺序输出变量c1、c2、c3和c4中的字符。
3
引例
引例
◦ 源程序 #include <stdio.h>(cw04-01.c)
void main() {
28
小结
运算符的相关概念 运算符的分类
◦ 按操作数个数分 ◦ 按操作类型分
各类运算符及表达式知识 优先级和结合性总结
29
23
赋值运算
运算符和表达式
赋值运算符
◦ 简单赋值运算符:= ◦ 复合赋值运算符:+=,-=,*=,/=,%= ◦ 优先级:14 ◦ 结合性:从右往左
赋值表达式
<变量> <赋值运算符> <表达式>
d = 23 ◦ 作用:将表达式的值赋给变量。 ◦ 赋值表达式的值就是被赋值的变量的值。
24
简单赋值运算
a>b m+n<=20 c!=‘y’ (x>z)==(y>z)
14
关系表达式
关系表达式的值是一个逻辑值:“真” 或“假”
◦ C语言没有逻辑类型,因此
用整数 1 表示“真”
用整数 0 表示“假”
◦ 即关系表达式的值是整数 1 或 0 。
a>b ◦ 举例
0
a+b<=c
1
(a>c)==(b若>ca)=1,b=21,c=3
10
自增和自减运算
举例(cw0404.c)
#include <stdio.h>
怎么分解?
利用除法、取模等运算。
顺序输出变量c1、c2、c3和c4中的字符。
3
引例
引例
◦ 源程序 #include <stdio.h>(cw04-01.c)
void main() {
28
小结
运算符的相关概念 运算符的分类
◦ 按操作数个数分 ◦ 按操作类型分
各类运算符及表达式知识 优先级和结合性总结
29
23
赋值运算
运算符和表达式
赋值运算符
◦ 简单赋值运算符:= ◦ 复合赋值运算符:+=,-=,*=,/=,%= ◦ 优先级:14 ◦ 结合性:从右往左
赋值表达式
<变量> <赋值运算符> <表达式>
d = 23 ◦ 作用:将表达式的值赋给变量。 ◦ 赋值表达式的值就是被赋值的变量的值。
24
简单赋值运算
a>b m+n<=20 c!=‘y’ (x>z)==(y>z)
14
关系表达式
关系表达式的值是一个逻辑值:“真” 或“假”
◦ C语言没有逻辑类型,因此
用整数 1 表示“真”
用整数 0 表示“假”
◦ 即关系表达式的值是整数 1 或 0 。
a>b ◦ 举例
0
a+b<=c
1
(a>c)==(b若>ca)=1,b=21,c=3
10
自增和自减运算
举例(cw0404.c)
#include <stdio.h>
c语言运算符和表达式ppt课件

3,再赋给a。
例如: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3
最新课件
26
是个整体
复合赋值运算表达式: 变量 双目运算符=表达式
注意:如果=右边是包含若干项的表达式,则相
当于它有括号。 步骤:
如: ① x %= y+3
1)左边变量的当前值与右边整个表达 式进行相应运算。
❖如果成立,则结果为逻辑值“真”,用整 数 “1”来表示;如:5>=5
❖如果不成立,则结果为逻辑值假”,用整 数“0”来表示。如:5<5
最新课件
29
§3.3 逻辑表达式
❖C语言提供的6种关系运算符:
运算符 名称
例子
>
大于
a>b
<
小于
a<b
==
等于
a==b
>=
大于等于 a>=b
<=
小于等于 a<=b
② 运算符操作的数据的个数。不同的运算符操 作的数据的个数不一定相同;根据运算符连 接运算对象的个数,一般分为单目运算符 (如++、--)、双目运算符(如* / %)和 三目运算符(如?:)。
最新课件
6
③ 运算符在整个运算符系统中的优先级。优 先级是指在运算对象的左右都有运算符时 运算的先后次序。运算对象先做优先级高 的运算。如:*/比+-优先级高。
❖表达式使用时应注意表达式的值及类型。 a. 不同类型的运算符所表示的表达式类型也是 不同的。表达式一般有算术表达式、赋值表达 式、关系表达式、逻辑表达式、逗号表达式、 条件表达式等表达式。 b. 表达式虽然有各种类型,但它总是有确定的 值的,根据运算符的优先级和结合性进行计算。
例如: a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8) x%=3 等价于 x=x%3
最新课件
26
是个整体
复合赋值运算表达式: 变量 双目运算符=表达式
注意:如果=右边是包含若干项的表达式,则相
当于它有括号。 步骤:
如: ① x %= y+3
1)左边变量的当前值与右边整个表达 式进行相应运算。
❖如果成立,则结果为逻辑值“真”,用整 数 “1”来表示;如:5>=5
❖如果不成立,则结果为逻辑值假”,用整 数“0”来表示。如:5<5
最新课件
29
§3.3 逻辑表达式
❖C语言提供的6种关系运算符:
运算符 名称
例子
>
大于
a>b
<
小于
a<b
==
等于
a==b
>=
大于等于 a>=b
<=
小于等于 a<=b
② 运算符操作的数据的个数。不同的运算符操 作的数据的个数不一定相同;根据运算符连 接运算对象的个数,一般分为单目运算符 (如++、--)、双目运算符(如* / %)和 三目运算符(如?:)。
最新课件
6
③ 运算符在整个运算符系统中的优先级。优 先级是指在运算对象的左右都有运算符时 运算的先后次序。运算对象先做优先级高 的运算。如:*/比+-优先级高。
❖表达式使用时应注意表达式的值及类型。 a. 不同类型的运算符所表示的表达式类型也是 不同的。表达式一般有算术表达式、赋值表达 式、关系表达式、逻辑表达式、逗号表达式、 条件表达式等表达式。 b. 表达式虽然有各种类型,但它总是有确定的 值的,根据运算符的优先级和结合性进行计算。
教学课件3-1 运算符和表达式

运算符的优先级别:如果在一个运算
【示例】
3 + 2*5
量两侧的运算符的“优先级别”不同,则
应先执行“优先级别”高的运算符。
3+(2*5)
= 3+ 10 =13
10
04
运算符和表达式的概念 运算符的优先级别和结合方向
运算符的结合方向:如果在一个运算
量两侧的运算符的“优先级别”相同,则 按运算符结合方向的顺序进行处理。 【示例】数学表达式 6 ÷ 3 × 2 数学中:6÷3×2=(6÷3)×2, 左结合
数据操作
之
运算符和表达式
运算符和表达式的概念 1.运算符: 用来表示运算的符号称为运算符或操作符。 要求有一个运算量的运算符称为单目运算符; 要求有两个运算量的运算符称为双目运算符; 要求有三个运算量的运算符称为三目运算符。 运算量:参加运算的对象, 包括:常量、变量、函数等。
02
运算符和表达式的概念
C语言的运算符共有13类:
(1)算术运算(2)赋值类运算符(3)关系运算符(4)逻辑运算符(5)条 件运算符(6)逗号运算符(7)强制类型转换运算符(8)长度运算符(9)下 标运算符(10)指针运算符(11)成员运算符(12)位运算符(13)其他运
算符。
03
运算符和表达式的概念 运算符的优先级别和结合方向
(6)逗号表达式。
对于一个表达式,根据运算符的优先级 别和结合方向,通过加括号的方法,总能把 一个表达式最终写成由某一种运算符连接的 表达式。 【例】a=b+2 a=(b+2),该表达式为赋值表达式;
a+3<b+1
(a+3)<(b+1),该表达式为关系表达式。
【示例】
3 + 2*5
量两侧的运算符的“优先级别”不同,则
应先执行“优先级别”高的运算符。
3+(2*5)
= 3+ 10 =13
10
04
运算符和表达式的概念 运算符的优先级别和结合方向
运算符的结合方向:如果在一个运算
量两侧的运算符的“优先级别”相同,则 按运算符结合方向的顺序进行处理。 【示例】数学表达式 6 ÷ 3 × 2 数学中:6÷3×2=(6÷3)×2, 左结合
数据操作
之
运算符和表达式
运算符和表达式的概念 1.运算符: 用来表示运算的符号称为运算符或操作符。 要求有一个运算量的运算符称为单目运算符; 要求有两个运算量的运算符称为双目运算符; 要求有三个运算量的运算符称为三目运算符。 运算量:参加运算的对象, 包括:常量、变量、函数等。
02
运算符和表达式的概念
C语言的运算符共有13类:
(1)算术运算(2)赋值类运算符(3)关系运算符(4)逻辑运算符(5)条 件运算符(6)逗号运算符(7)强制类型转换运算符(8)长度运算符(9)下 标运算符(10)指针运算符(11)成员运算符(12)位运算符(13)其他运
算符。
03
运算符和表达式的概念 运算符的优先级别和结合方向
(6)逗号表达式。
对于一个表达式,根据运算符的优先级 别和结合方向,通过加括号的方法,总能把 一个表达式最终写成由某一种运算符连接的 表达式。 【例】a=b+2 a=(b+2),该表达式为赋值表达式;
a+3<b+1
(a+3)<(b+1),该表达式为关系表达式。
C运算符与表达式课件

d = a == b < c; //等价于d = (a ==( b < c)); d的值为0
d = a > b <= c; //等价于d = ((a > b) <= c); d的值为1
可以使用()来改变运算符的计算次序。
既然关系运算的结果是一个逻辑值,那么就可以保存在一个逻辑型 bool变量中。例如: bool b = a > 5;
(2)按位逻辑与“&”对两个操作数逐位进行运算。 若对应位都为1,则该位结果为1,否则为0。例 如: 0xc300000000110000110x6e0000000001 101110a0000000001000010
short int a=0xc3 & 0x6e //结果为0x42
(3)按位逻辑或“|”对两个操作数逐位进行运算。若 对应位都为0,则该位结果为0,否则为1。例如: short int b = 0x12 | 0x3d //结果为0x3f
||(逻辑或)表示“或者”的语义。
例如:
!(2 > 6)
//结果为1,真
7 > 3 && 10 > 6 //结果为1,真
5 > 2 || 4 > 8 //结果为1,真
4 && 5 < 6
//结果为1,真
逻辑运算符的运算优先级为:! 高于 && 高于||。 注意,!的优先级具有较高优先级,甚至高于算 术运算符。而&&和||的优先级则比算术运算符和 关系运算符低。
cout<<"min = "<<min<<endl;
int max = (1 << 31) - 1;
d = a > b <= c; //等价于d = ((a > b) <= c); d的值为1
可以使用()来改变运算符的计算次序。
既然关系运算的结果是一个逻辑值,那么就可以保存在一个逻辑型 bool变量中。例如: bool b = a > 5;
(2)按位逻辑与“&”对两个操作数逐位进行运算。 若对应位都为1,则该位结果为1,否则为0。例 如: 0xc300000000110000110x6e0000000001 101110a0000000001000010
short int a=0xc3 & 0x6e //结果为0x42
(3)按位逻辑或“|”对两个操作数逐位进行运算。若 对应位都为0,则该位结果为0,否则为1。例如: short int b = 0x12 | 0x3d //结果为0x3f
||(逻辑或)表示“或者”的语义。
例如:
!(2 > 6)
//结果为1,真
7 > 3 && 10 > 6 //结果为1,真
5 > 2 || 4 > 8 //结果为1,真
4 && 5 < 6
//结果为1,真
逻辑运算符的运算优先级为:! 高于 && 高于||。 注意,!的优先级具有较高优先级,甚至高于算 术运算符。而&&和||的优先级则比算术运算符和 关系运算符低。
cout<<"min = "<<min<<endl;
int max = (1 << 31) - 1;
第4章-运算符和表达式ppt课件(全)

【例4.3】用条件表达式求解下列问题。 (1)求两个变量a、b的最大值。
解 s=(a>b)?a:b; (2)求三个变量a、b、c的最大值。
解 s=(s=a>b?a:b)>c?s:c; (3)对字符变量ch,若为小写字母,则改为大写字
母,其余字符不变。 解 ch=(ch>=’a’&&ch<=’z’)?(ch+’A’-‘a’):ch; (4)输出整型变量x的绝对值。 解 (x>0)?printf(“%d”,x):printf(“%d”,-x);
5.按位取反运算 (~) 使每一位上的0变1;1变0。
例如;~0115是将八进制数115按位求反。 即: ~ 01001101 _______________ 结果:10110010
6.左移运算 (<<) 例如: char a=6,b; b=a<<2; 用二进制数如下: a :00000110 (a=6) b=a<<2 :00011000 (b=24)
3. 算术运算中的类型转换 (1) 自动转换
规则如下
高
double float
例如:2+’a’+1.5
long
2+ 97+1.5
unsigned
99+1.5 99.0+1.5
低
int
char,short
100.5
(2) 强制类型转换 一般形式为:
(类型名)表达式 例如:
(double)a (将 a转换成 double类型) (int)(x+y) (将 x+y的值转换成整型) (float)(5%3) (将5%3的值转换成 float型) (int)3.14%2 (即3%2)
运算符和表达式PPT课件

数据类型决定: 1. 数据占内存字节数 2. 数据取值范围
共用体类型union 3. 其上可进行的操作
枚举类型enum
空类型void
自2定021/义5/8 类型typedef
6
§3.2 常量与变量
一、标识符
1、定义:可用来标识变量名、符号常量名、函数名、数组 名、类型名、文件名的有效字符序列。
2、命名规则:
数
编译da程t序ad=根a(t据aa+=变b(量a)*+定1b义.)2*为;1其.2; c
2字节
…...
据 描
分p配r指inp定trf字(i“n节dtf的a(t“内ad=存a%t单a元f=\%n”f,\dna”t,ad)a; ta);
述< >
} }2021/5/8
内存
随机1数0
三、变量
1、定义:在程序运行的过程中,值可以改变的量。
…...
第 二 章
例例12isnftclato=daaset%m{tnuabt,d=a;bm{1ieifa,nn9cnl=oa(t/;;t)/1a;iiIafnlna;tll=oe(/t,/b)1agdU=a;taan,2ltbdda;ue=a;fs2tiean;;eodf地 地变fs可ly址址o量m执at定biab行no义g语l ‘psfcii句nnlohtoattiaant1-rtxxe3t==ncdi1yhtan’,==ytizafn=‘u=A=11nf3’,uz;;.c6=n22t7字字1ico;;t节节niomn amina
5
§3.1 C语言的数据类型
基本整型int
整型
有符号
短整型short 长整型long
基本整型unsigned int
第4章c语言(运算符和表达式)PPT教学课件

a
b
a&&b
a||b
真
真
真
真
真
假
假
真
假
真
假
真
假
假
假
假
其中,“!”是单目运算符,而”&&”和 “||” 是双目运算符。
2020/12/11
20
4.4.2 逻辑表达式
逻辑运算符把各个表达式连接起来组成一个逻辑 表达式。例如:a&&b、1||(!x)
逻辑表达式的值只有两个:0和1。 举例:
当x为0时,x<-2 && x>=5的值为多少。 若a=4,则 !a 、a&&-5 、4||0 的值分别为多少。
位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右 移(>>)
简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)、 复合位运算赋值(&=,|=,^=,>>=,<<=)
(?:)
(,)
用于取内容和取地址
取内容(*)、取地址(&)
用于计算数据类型所占的
字节数
(sizeof)
3
其它
⑵ 注意“==”与“=”的区别,==是用来判断运算符两边的数据是 否相等,而=作用是将右边表达式的值赋给左边的变量。 如:a==b<c 与 a=b<c 不同
2020/12/11
28
4.6.2 赋值表达式
赋值表达式的值等于右边表达式的值,而结果的 类型由左边变量的类型决定,例如:
int i; float f; i=1.2*3; f=23;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
int b=(int)f%a;
/*对f进行强制类型转换*/
printf("%d,%f\n",b,c); /*输出变量b和c的值*/
}
3.4.2 复合赋值运算符
3.5 关系运算符与表达式
3.5.1 关系运算符
3.5.2 关系表达式
用关系运算符连接起来的两个表达式称为 关系表达式。其中,关系运算符两侧的表 达式可以是算术表达式、逻辑表达式、赋 值表达式和字符表达式等。
以上类型转换是由系统自动进行的。
【例3-2】赋值运算符示例
main()
{
int a=2;
/*定义并初始化整型变量a*/
double e=5.123; /*定义并初始化双精度变量e*/
float f=4.2;
/*定义并初始化单精度变量f*/
float c=e/a;
/*定义并初始化单精度变量c*/
3.2.3 运算符的优先级与结合性
1. 优先级 在表达式求值时,先按运算符的优先级别 高低次序执行,例如先乘除后加减。 a-b*c,相当于 a-(b*c)。 2. 结合性 如果一个运算对象两侧的运算符的优先级 别相同,如a-b+c,按规定的“自左向右”处 理。
C规定了各种运算符的优先级和结合性,可 参见附录II。
3. 小括号的用途 C语言中小括号也作为一个特殊的运算符来
处理,并且它的优先级别是最高的,所以 在一些比较长或复杂的表达式中,可以恰 当的使用小括号规定运算的先后次序。
【示例】设a=8,b=2,c=16,d=8
(a+b)*(c-d)的值为80 a+b*c-d的值为32 a/(c/d)的值为4 a/c/d的值为0
关于运算符与表达式
3.1 C语言运算符概述
运算符是一种符号,它告诉计算机执行某 些数学或逻辑操作。 在程序中,运算符用于数据和变量的操作。
3.1 C语言运算符概述
C语言的运算符:
算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算 符、逗号运算符等
表达式就是操作数和运算符的组成系列, 最终推导出一个值。
3.2 算术运算符与表达式
3.2.1 算术运算符
3.2.2 算术表达式
用算术运算符和括号将运算对象(即操作 数)连接起来的、符合C语言语法规则的表 达式,称为算术表达式。
1. 整数算术运算
参加算术运算的两个操作数都是整数,那么 这个表达式就称为整数表达式,该操作称 为整数算术运算,其结果总是一个整数值。
自减运算符:--
自增自减运算符都是单目运算符,需要使用变量 作为它们的操作数,其表达式格式为:
++变量名 --变量名
变量名++
变量名- -
其中,运算符在变量名前面,称为前缀;运算符 在变量名后面,称为后缀。
++i与- -i是指在使用i之前,先把i的值加1或减1。
i++与i- -则是指在使用i之后,再把i的值加1或减1。
3.2.4 表达式中的类型转换 如果一个运算符两侧的数据类型不同 ,可
以进行
隐式类型转换(系统自动进行) 显式类型转换(强制类型转换)
隐式类型转换
int i , x ; float f; double d; long int l ; 进行x=l/i+i*f-d的运算
显式类型转换(强制类型转换) 强制类型转换运算符的一般形式: (类型名)(表达式)
么这个表达式就称为实数表达式,该操作 称为实数算术运算,其结果总是一个实数 值。
6.0/7.0=0.857143
1.0/3.0=0.333333 【注意】 实数不能进行%(求余)运算
3. 混合算术运算
如果表达式中既有实数,又有整数,则称 此表达式为混合算术表达式,其结果是一 个实数。
15/10.0=1.5 而15/10=1
示例 3-4
判断两个数是否相等
判断两个整数是否相等,可以直接用关系 运算符==。
判定两个实数是否相等时,由于计算机存 储上出现的误差,会出现错误的结果,
1.0/3.0*3.0 == 1.0 为“假”,即0 fabs ( 1.0/3.0 *3.0 – 1.0) <1 e -5 fabs是求绝对值函数。只要1.0/3.0 *3.0与1.0
a=2
a=b=c=3
3. 赋值运算时的类型转换
将实型数据赋给整型变量时,需要舍弃该 实数的小数部分。例如:int a = 1.23 ; 变量a 得到的值为1,小数部分被舍弃。
将整型数据赋给单、双精度变量时,数值 不变,但是将以浮点数的形式存储到变量 之中。例如:float b=10 ; 则需要将10转换为 10.00000,再存储到b中。
【例3-1】自增自减运算符示例
3.4 赋值运算符与表达式
3.4.1 赋值运算符与赋值表达式 1. 赋值运算符
符号“=”就是赋值运算符,它是将一个 数赋给一个变量 。
a=5 设a=3, b=a+2
2. 赋值表达式 由赋值运算符将一个变量和一个表达式连
接起来的式子就称为“赋值表达式”。其 一般形式如下: <变量>=<表达式>
a>b,a+b>c-d,(a=3)<=(b=5),'a'>='b', (a>b)= =(b>c)
关系表达式的值是一个逻辑值,即“真” 或“假”。在C语言中没有逻辑类型的数据, 所以用整数“1”表示逻辑“真”,用整 数“0”表示逻辑“假”。
关系表达式的值
假设num1=3,num2=4,num3=5,则: num1>num2的值=0。 (num1>num2)!=num3的值=1。 num1<num2<num3的值=1。 (num1<num2)+num3的值=6。
(double )a
将a转换成double类型
(int)(x+y)
将x+y的值转换成整型
(float)(5%3) 将5%3的值转换成float型
【注意】要转换的表达式应该用括号括源自来,如 果写成(int)x+y,则是将x装换成整型,然后与y相加。
3.3 自增运算符与表达式
自增运算符:++
【示例】假设变量a=14,b=4,则
a-b=10
a+b=18
a*b=56
a/b=3(小数部分被截除)
a%b=2(余数)
对于取模运算,结果的符号总与第一个操 作数(被除数)的符号相同:
-14%3=-2 -14%-3=-2 14%-3=2
2. 实数算术运算 参加算术运算的两个操作数都是实数,那