资源预览内容
第1页 / 共48页
第2页 / 共48页
第3页 / 共48页
第4页 / 共48页
第5页 / 共48页
第6页 / 共48页
第7页 / 共48页
第8页 / 共48页
第9页 / 共48页
第10页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第三章第三章 运算符和表达式运算符和表达式一、算一、算术操作符操作符+,-,/,%1、/ 对于整型和于整型和实型有不同的意型有不同的意义。 1假假设两个操作数都是整数,那么两个操作数都是整数,那么为整除操作整除操作求商,舍余,操作求商,舍余,操作 结果果为整数。整数。 如:如:10/3=3 2只需两个操作数中有一个只需两个操作数中有一个为实数,那么操作数,那么操作结果果为实数。数。 如:如:10.0/3=3.33332、% 只用于整数的求余操作求余,舍商。如:只用于整数的求余操作求余,舍商。如:10%3=13、+,-取正,取取正,取负:一元操作符,在表达式中可以:一元操作符,在表达式中可以跟在其他跟在其他类型的操作符的后面,但不能跟在型的操作符的后面,但不能跟在+加号,加号,-减号后面。减号后面。 如:如:p+q i/-3 () P+q i-3 () 注:两个操作符在一同,最好运用注:两个操作符在一同,最好运用 如:如: p+q i/-3 3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式二、位操作符二、位操作符, |, &, , 1、 左移和右移左移和右移如:如:5 1 00000101 000000102左移一位相当于乘以左移一位相当于乘以2。右移一位相当于整除右移一位相当于整除2。3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式2、 |, &, |:按位或。有:按位或。有1那么那么1,全,全0那么那么0 &:按位与。有:按位与。有0那么那么0,全,全1那么那么1 :按位异或。同那么:按位异或。同那么0,异那么,异那么1例例 0011|0110 0111 (7) 0011& 0110 0010 (2) 0011 0110 0101 (5)3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式3、:按位取反。:按位取反。0变1,1变0如:如:00011001 11100110三、三、赋值操作符操作符 1、赋值操作符操作符 =2、赋值语句的格式句的格式 : 变量量=表达式;如:表达式;如:k=7;3、赋值操作符可延操作符可延续运用。运用。如:如:执行行k=m=7;那么那么k和和m的的值都都为7。3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式四、复合四、复合赋值操作符操作符+=,-=,=,/=,%=,=,|=,&=,=复合复合赋值与普通与普通赋值有有严厉的的对应关系。关系。即:即:变量?量?=表达式表达式 变量量=变量?表达式量?表达式其中?表示某个二元操作符其中?表示某个二元操作符如:如:k+=3 k=k+3 s=j-7 s=s(j-7)3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式五、增五、增1减减1操作符操作符+,-1、 +前增前增1,如,如+i - 前减前减1,如,如-i)先先对变量增量增1或减或减1,然后,然后变量以增量以增1或减或减1后的后的值参与表达式的参与表达式的计算。算。先先变值,后,后计算。算。3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式例例1:m=+k;例例2:int k,d=5;k=+d2;结果为:结果为:d=6,k=12k+=1; /k=k+1;m=k;d+=1; /d=d+1;k=d2;3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式2、 +后增后增1,如,如i + - 后减后减1,如,如i -)变量先以原量先以原值参与表达式的参与表达式的计算,然后算,然后对变量增量增1或减或减1 。先先计算,后算,后变值。3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式例例1:m=k +;例例2:int k,d=5;k=d + 2;结果为:结果为:d=6,k=10m=k; k+=1; /k=k+1;k=d2; d+=1; /d=d+1;3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式六、六、sizeof操作符操作符1、作用:、作用:计算一数据或数据算一数据或数据类型所占空型所占空间 的字的字节数。数。2、格式、格式例:例:double d=3; coutsizeof(5) sizeof(d+2) sizeof(long double);sizeof类型修型修饰符符sizeof表达式表达式3.1运算符的种运算符的种类及其功能及其功能第三章第三章 运算符和表达式运算符和表达式1、优先先级见p47表表3.1 当一个表达式中有多个操作符当一个表达式中有多个操作符时,优先先级高高的先的先执行。如:行。如:22-25;2、结合性合性从右向左:一元、从右向左:一元、赋值及复合及复合赋值操作符操作符从左向右:除一元、从左向右:除一元、赋值及复合及复合赋值操作符外操作符外3.2 操作符的优先级和结合性操作符的优先级和结合性第三章第三章 运算符和表达式运算符和表达式 假假设表达式中相表达式中相邻的两个操作符的两个操作符优先先级 一一样,那么先,那么先执行哪个操作符,就由行哪个操作符,就由 前一个操作符的前一个操作符的结合性确定。合性确定。 如:如:k=j+=5;从左向右:先从左向右:先执行前一个操作符行前一个操作符从右向左:先从右向左:先执行后一个操作符行后一个操作符3.2 操作符的优先级和结合性操作符的优先级和结合性第三章第三章 运算符和表达式运算符和表达式3、 具有最高的具有最高的优先先级,可,可强迫改迫改动运运 算算顺序。如:序。如:x+3/y (x+3)/y4、C+表达式与数学表达式的区表达式与数学表达式的区别 1一切字符写在同一程度一切字符写在同一程度线上。上。 2算算术运算符与数学中的运算符在写法运算符与数学中的运算符在写法 上有所区上有所区别。 3算算术运算符不能省略。运算符不能省略。3abxx3ab3.2 操作符的优先级和结合性操作符的优先级和结合性第三章第三章 运算符和表达式运算符和表达式4一些运算用函数实现。一些运算用函数实现。pow:乘方:乘方 如:如:sqrt:开平方:开平方 如:如:log:自然对数:自然对数 如:如:lnx log(x)log10:常用对数:常用对数 如:如:lgx log10(x)exp:以:以e为底的乘幂为底的乘幂 如:如: exp(2.5)sin:正弦:正弦 如:如:sinx sin(x)cos:余弦:余弦 如:如:cosx cos(x)pow(a,2x)sqrt(a)3.2 操作符的优先级和结合性操作符的优先级和结合性第三章第三章 运算符和表达式运算符和表达式运用运用这些函数些函数时应留意:留意:1、参数必需放在、参数必需放在 中。中。2、在程序开、在程序开场必需加上必需加上语句句 #include5括号无大、中、小之分,全部用小括括号无大、中、小之分,全部用小括 号号 来表示,而且可以嵌套。来表示,而且可以嵌套。3.2 操作符的优先级和结合性操作符的优先级和结合性第三章第三章 运算符和表达式运算符和表达式一、无操作符的表达式一、无操作符的表达式简单表达式表达式1、最、最简单的表达式:常量、的表达式:常量、变量、函数量、函数调用用2、每个表达式都有一个、每个表达式都有一个值:常量的常量的值:常量数据本身。:常量数据本身。变量的量的值:存于:存于该变量空量空间的数据。的数据。函数的函数的值:函数前往的数据。:函数前往的数据。3、数、数值表达式:整型表达式:整型类表达式和表达式和实型型类表达式表达式3.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式二、二、逻辑表达式表达式1、逻辑型是用来判型是用来判别真、假形状的数据真、假形状的数据类型。型。2、逻辑常量只需两个:常量只需两个:true真和真和false假假3、逻辑变量的定量的定义与初始化格式同整型与初始化格式同整型变量量如:如:bool x; bool x=true; bool x,y,z; bool x=false,y=true,z=true;3.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式4、逻辑操作符和操作符和逻辑表达式表达式1逻辑操作符操作符! | &) 操作数必需是操作数必需是逻辑型或可型或可转换为逻辑型的数据。型的数据。!:逻辑非非false变true, true 变false|:逻辑或有或有true那么那么 true,全,全 false那么那么 false&:逻辑与有与有false 那么那么false,全,全 true那么那么 true2逻辑表达式表达式表达式的表达式的值只能是只能是false或或true。3.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式三、关系操作符和关系表达式三、关系操作符和关系表达式1关系操作符关系操作符=,!=,=,y和和xy的相反条件的相反条件为!(xy)利用配利用配对关系关系=和和!=,和和=,= 如:不用操作符如:不用操作符!,xy+33.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式六、等价条件六、等价条件1、假、假设两个两个逻辑表达式在任何情况下同表达式在任何情况下同为false或同或同为true,那么,那么这两个表达式所表两个表达式所表达的条件称达的条件称为等价条件。等价条件。如:如:xy和和!(xy) x=y!(xy!(x=y!(x=y) xy相反条件的相反条件相反条件的相反条件等价于原条件。等价于原条件。3.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式!(E1&E2) !E1|!E2!(E1|E2) !E1&!E2E1&E2 E2&E1E1|E2 E2|E1对&或或|的的分配律分配律对&或或|的的交交换律律3.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式3、利用等价条件来求复合条件的相反条件、利用等价条件来求复合条件的相反条件例例1:不用操作符:不用操作符!,求,求x=3|x3的相反条件。的相反条件。解:解:!(x=3|x3) !(x=3)&!(x=3例例2:不用操作符:不用操作符!,求,求x=2&x=2&x=2)|!(x=7) x73.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式七、永假条件和永真条件七、永假条件和永真条件如:如:x15的的值永永为false,为永假条件。永假条件。 y0|y=0的的值永永为true,为永真条件。永真条件。注:注: false是最是最简单的永假条件,的永假条件, true是最是最简单的永真条件。的永真条件。条件永条件永远不成立,不成立,值为false。条件永条件永远成立,成立,值为true。3.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式八、八、逻辑型数据与其他数据型数据与其他数据类型的关系型的关系1、逻辑型数据作型数据作为数数值数据运用数据运用时,false转换为0,true转换为1。2、字符型、枚、字符型、枚举型、整型或型、整型或实型数据型数据值作作为逻辑值运用运用时,一切,一切0值转换成成false,一一切非切非0值转换成成true。3、指、指针值作作为逻辑值运用运用时,空指,空指针值转换成成false,非空指非空指针值转换成成true。总结:0就是就是false,非,非0就是就是true。3.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式阐明:明:1、数、数值型数据与型数据与逻辑型数据出如今同一表型数据出如今同一表达式中达式中时,逻辑型数据无条件地型数据无条件地转换为数数值型数据型数据0或或1。例:例:bool k=true; int j=3; coutendlj+k j=k; 输出出结果果为: 4 03.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式2、在用数、在用数值数据数据对逻辑变量量进展初始化展初始化 或者或者赋值时,任何非,任何非0值都都转换为1。例:例:bool k=9,h; h=5; coutk x; w=x100 ? 0 : x3; cout0 ? 1 : (x0 1 x=0 x0 : -1 x=0 : 03.3 表达式的种类各、值和类型表达式的种类各、值和类型第三章第三章 运算符和表达式运算符和表达式一、自一、自动转换 1当表达式中一个操作符的两个操作当表达式中一个操作符的两个操作数数类型不同型不同时,其中一个操作数的,其中一个操作数的类型型将自将自动转换成与另一个操作数的成与另一个操作数的类型一型一样。3.4 类型转换类型转换第三章第三章 运算符和表达式运算符和表达式 2转换规律律短的向短的向长的靠的靠拢,有符号的向无符号的靠,有符号的向无符号的靠拢;整型向整型向实型靠型靠拢,低精度的向高精度的靠,低精度的向高精度的靠拢。例:例:4+23L-5.1 4L +23L-5.1 27L-5.1 27.0-5.1 21.93.4 类型转换类型转换第三章第三章 运算符和表达式运算符和表达式3转换规律不适用的两种操作律不适用的两种操作只只针对特定特定类型的操作。型的操作。两两边向操作符靠向操作符靠拢赋值或复合或复合赋值操作。操作。右右边向向变量靠量靠拢例:例:int k=3; double d=2.718; k+=d; /k=k+d; coutk;语句句执行后的行后的输出出结果果为5。3.4 类型转换类型转换第三章第三章 运算符和表达式运算符和表达式二、二、强迫迫转换1利用利用类型修型修饰符控制符控制类型型转换的的过程。程。2格式:格式: 类型修型修饰符表达式符表达式 /承承继C言言语格式格式 类型修型修饰符表达式符表达式 /C+特有的格式特有的格式如:如:float(j) 或或 (float)j、(float)(j) int(3.14+i) 或或 (int)(3.14+i) 三、只需兼容的数据三、只需兼容的数据类型才干相互型才干相互转换。3.4 类型转换类型转换第三章第三章 运算符和表达式运算符和表达式1、用自定、用自定义的的标识符来代表一个特定的符来代表一个特定的 数据数据类型。型。2、格式:、格式:typedef 类型修型修饰符符阐明;明; 例:例:typedef int DISTANCE; DISTANCE i,Beijing_to_Tianjing; int i,Beijing_to_Tianjing;3.5 自定义类型修饰符自定义类型修饰符第三章第三章 运算符和表达式运算符和表达式3、作用、作用提高程序的可提高程序的可读性。性。提高程序的可提高程序的可维护性。性。防止防止类型运用上的不一致性。型运用上的不一致性。例:知程序中用例:知程序中用unsigned char型数据表示型数据表示年年龄,为了添加可了添加可读性,决性,决议将之命名将之命名为AGE,那么完成命名的定,那么完成命名的定义是:是: typedef unsigned char AGE;3.5 自定义类型修饰符自定义类型修饰符第三章第三章 运算符和表达式运算符和表达式一、表达式的副作用一、表达式的副作用1、在表达式的求、在表达式的求值过程中不但要提取程中不但要提取变 量的量的值,还能能够改改动变量的量的值。 如:如:k=m+2、表达式能、表达式能产生副作用的生副作用的缘由:引入了由:引入了 具有副作用的操作。具有副作用的操作。3.5 表达式的副作用表达式的副作用第三章第三章 运算符和表达式运算符和表达式 赋值= 复合复合赋值+=, =, =,/=,%=, =,|=,&=,=) 前增前增1前减前减1+, 后增后增1后减后减1+, 上述操作所作用的上述操作所作用的对象必需是象必需是变量,因此量,因此这些操作也称些操作也称为:作用于:作用于变量的操作。量的操作。3.5 表达式的副作用表达式的副作用第三章第三章 运算符和表达式运算符和表达式3、对于于“作用于作用于变量的操作除后增量的操作除后增1和和后减后减1,作,作为操作操作结果的表达式的果的表达式的值就就是所作用的是所作用的变量所量所获得的得的值。 例:例:int k=3; cout(k+=2); cout k; 输出出结果果为:5 53.5 表达式的副作用表达式的副作用第三章第三章 运算符和表达式运算符和表达式4、可、可对同一同一变量延量延续施加假施加假设干个干个“作用作用 于于变量的操作。量的操作。例:例: int k=3; cout+(k+=2); cout k;输出出结果果为:6 63.5 表达式的副作用表达式的副作用第三章第三章 运算符和表达式运算符和表达式注:注:1 “作用于作用于变量的操作只能施加量的操作只能施加 于于变量量对象。象。如:如:(p+3) =k, +5, 100=p都是都是错误的。的。2当假当假设干个干个“作用于作用于变量的操作施加量的操作施加于于 同一同一变量量时,除了最后一个外,不得,除了最后一个外,不得 有后增有后增1或后减或后减1操作。操作。如:如:k+=5是是错误的的.3.5 表达式的副作用表达式的副作用第三章第三章 运算符和表达式运算符和表达式二、表达式副作用的运用二、表达式副作用的运用1、逗号操作符与逗号表达式、逗号操作符与逗号表达式1逗号操作符:,逗号操作符:,2格式:表达式格式:表达式1,表达式,表达式23逗号表达式的逗号表达式的值:逗号表达式的:逗号表达式的值 就是表达式就是表达式2的的值。如:由如:由x=(i+,j)可知:可知:x与与j同同值。3.5 表达式的副作用表达式的副作用第三章第三章 运算符和表达式运算符和表达式2、表达式、表达式语句句1表达式作表达式作为语句来运用。句来运用。2构成:表达式后加分号构成:表达式后加分号;。3功能:表达式作功能:表达式作为语句运用句运用时,它的,它的功能功能经过副作用来表达。因此把没有副副作用来表达。因此把没有副作用的表达式作作用的表达式作为语句运用是无意句运用是无意义的。的。如:如:x+=5;有意有意义k+1;无意无意义3.5 表达式的副作用表达式的副作用
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号