收藏 分享(赏)

第3章表达式和语句.ppt

上传人:jmydc 文档编号:4868675 上传时间:2019-01-18 格式:PPT 页数:36 大小:175.50KB
下载 相关 举报
第3章表达式和语句.ppt_第1页
第1页 / 共36页
第3章表达式和语句.ppt_第2页
第2页 / 共36页
第3章表达式和语句.ppt_第3页
第3页 / 共36页
第3章表达式和语句.ppt_第4页
第4页 / 共36页
第3章表达式和语句.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

1、第三章 表达式和语句,语句,在C/C+中语句是程序功能的基本执行单位。 多个语句结合在一起可以完成一些特定的功能。 一个语句有可以由若干个表达式组成。,第一节表达式,表达式,表达式用运算符和括号将运算对象(常量、变量和函数等)连接起来的符合C+语法规则的式子。 例: 2+3+(5*sizeof(int)/345表达式根据某些约定、结合和优先级进行计算。约定:类型转换的约定float a; a=5/2; /a=2,而不是2.5结合:相同优先级时的求值顺序。d=a+b-c; /从左至右d=a=3; /从右至左优先级:不同优先级的运算符,总是先做优先级高的运算。d=a+b*c;,左值与右值(重要概念

2、),左值(lvalue):能够出现在赋值表达式左边的常量、变量和表达式,是可以被改变的值。 int a=3; /a是变量,a是左值const int b=4; /b是常量,b不是左值右值(rvalue):只能出现在赋值表达式右边的常量、变量和表达式。左值表达式也可作为右值表达式int a,b=6;a=b; /a、b都是左值,b此处作为右值a=8 ; /8是常量,只能作为右值(a=4)=28; /左值表达式可以再赋值,表3-1 优先级与结合性,表3-1 优先级与结合性,语句与块(复合语句),由表达式和分号组成一条完整的语句。var = 2;可以是空语句,仅有一个分号,空语句要单独成行,最好能加上

3、注释,解释原因,增加代码的可读性。;块(复合语句),是包含在花括号内的多个语句的集合。从语法上讲块可以被认为是单个语句。块可以嵌套使用。,参与运算对象个数和运算符的种类,单目运算符:只有一个对象参与运算+、 -、!、 等双目运算符:参与运算的对象有两个+、-、*、/ 。等三目运算符:要有三个对象参与运算(只有一个)?:,第二节 赋值运算符与赋值表达式,赋值运算符:= 赋值表达式:V= e; 赋值表达式的值等于运算符右边的表达式的值其作用是将表达式的值存入变量V。 复合赋值运算符:由赋值运算符之前再加一个双目运算符构成(赋值缩写)。p37格式: V op= e 等价于: V = V op e 例

4、如: a+=5, 等价于 a=a+5 复合赋值运算符有10个,最常用的是以下5个:+=、-=、*=、/=、%=,赋值过程中的类型转换,转换总是朝表达数据能力更强的方向,且转换总是逐个运算符进行。,赋值过程中的类型转换 p38,隐式转换 float f=3.5; int n=6; long k=21; double ss=f*n+k/2; /ss值为31,而不是31.5 long m=234*456/6; /m的值为-4061(16位机),17784(32位) 显示转换(强制转换):在数值或变量前加带括号的类型名,或类型名后加带括号的数值或表达式 long m=(long)234*456/6;

5、/m的值为17784 long m=long(234)*456/6; /m的值为17784 long m=long(234*456)/6; /在16位机上不能得到预期结果,复合赋值,a+ = a- = a*a,假设a的初值是12,求a相当于: (1)a-=a*a, a=-132 (2)a+=-132, a=a=-264,第三节 算术运算符与算术表达式,基本算术运算符:+ - * / %加 减 乘 除(取整) 整除取余+,-,* 是通常意义的加、减、乘法/ 对于整型数为除法取整:5/2=2/ 对于浮点数为普通意义除法:5.0/2.0=2.5% 只能对整型数进行操作:5%2=1自增运算:+ -,算

6、术表达式,算术表达式:由算术运算符组成的表达式。 运算对象:数值变量、常数、函数、表达式等。 运算结果: 数值。 优先级: 先乘、除、取余,后加、减。 结合性: 从左至右。 注意事项:x*-y 应写成 x*(-y)6x 应写成 6*x5X2 应写成 5*X*X。,自增自减运算符,为了简化程序书写,C/C+语言中定义两种运算符: 自增运算符:+ 表示加1,i+等价于i=i+1。 自减运算符:- 表示减1,i- 等价于i=i-1。 作用是将唯一的操作数赋值为其自身值加1(减1)后的值。由于该操作数会被赋值,因此,必须是左值! 运算规则:只能用于变量。合法: i+非法:3+ 前缀:+i -i 后缀:

7、i+ i-+i (- - i ),先运算i,再使用ii+ (i - - ),先使用i,再运算i,前增量与后增量 p40,作为单一语句,前增量和后增量操作的作用是相同的,都是加1操作。 前增量操作:先将变量增1,使其实体发生变化,然后将变量对应的实体作为表达式结果。 后增量操作:先将变量的值(仅仅是值,不是实体)作为表达式的值确定下来,再将变量增1,实体值发生变化。 因此,作为表达式的结果,前增量返回的是左值,后增量返回的不是左值。,+(i+)非法:i+不是左值 +(+i)合法:i+是左值,详解,例:int m,i=2;,自增自减的贪吃法则 p4041,只要能理解(能成为运算符),就尽量多读入字

8、符。 int a=1,b=5, c; c=a+b; /ok c=a+b; /error; c=a + b c=a+b; /ok; c=a+ +b c=a+b; / error;c=a+ + b c=a+b; / error; c=a+ + +b 编译器对表达式的理解没有二义性,如果要使上述非法代码可行,只能人为控制: c=a + +b; /c=6 c=a+ + +b; /c=6,a=2,b=5 c=a+ + +b; /c=7,a=2,b=6 c=a+ +b; /c=8,a=1,b=7,第四节 关系运算和关系表达式,关系运算符: = ,=,= 高于 = , !=赋值运算 关系运算 算术运算,运算对象,算术、关系、赋值、字符表达式算术表达式:x+y = x*y ; 关系表达式:(a b) = (c d); 赋值表达式:(x + = 3 ) = ( y- = 1); 字符表达式:a ! = A ;,=和=的区别 p4142,=和=是两种不同的运算。x=somevalue;if(x=9) /测试两者是否相等cout“x is not 0n” ; x=somevalue; if(x=9) /x被赋予一个具体的值cout“x is not 0n” ;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 统计图表

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报