




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章 操作符和表达式 oC+操作符 oC+表达式 3.1 操作符和表达式 o在C+中对常量或变量进行运算或处理的符号称为 运算符,即操作符操作符,参与运算的对象称为操作数操作数。 o由操作符、操作数及标点符号组成的,能取得一个 值的式子称为表达式表达式。 o根据操作数的多少,可将操作符分为单目、双目及 三目操作符。 n单目操作符只对一个操作数运算,如负号操作符“”等; n双目操作符要求有两个操作数,如乘号操作符“*”等; n三目操作符要求有三个操作数,三目操作符只有一个,即 条件操作符“?:”。 操作符和表达式 a*x 操作符:* 操作数:a、x 表达式:a*x y=t 操作符:= 操作数:y、t 表达式:y=t y=a*x 操作符的优先级 优先级和结合性决定了运算中的优先关系 优先级:指不同运算符在运算中的优先关系, 优先级越高,越先计算。 例如: 算术操作符的优先级高于关系操作符、逻 辑操作符的优先级; 算术操作符中,乘号(*)和除号(/)的优 先级高于加号()和减号()的优先级。 操作符的结合性 结合性:决定优先级相等的运算符组合在一 起时的运算次序 如+、-的结合性是从左到右(左结合) ,则a+b+c-d的运算次序为: (a+b)+c)-d /先算a+b,再加c,最后减d 又如前+和单目负-的结合性是从右到左 (右结合),则-+a的运算次序为: -(+a) /先做+a,再取相反数(加负号) 3.2 优先级和结合性 操作符按功能分类: o算术操作符和算术表达式 o赋值操作符和赋值表达式 o自增、自减操作符 o逻辑操作符和逻辑表达式 o位运算与位操作符 o逗号操作符和逗号表达式 osizeof()操作符 o关系操作符 o条件操作符 o其它操作符 一、算术操作符 优先级操作符名 称 高+正,单目 -负,单目 *乘,双目 /除,双目 %求余,双目 +加,双目 低-减,双目 当两个操作数均为整数时,*和/重载为整乘和 整除,结果为整数,除法运算后舍去小数取整 。如: 5/4/结果为1,整数 当两个操作数均为整数时,%定义为求余运算, 也称求模运算,结果为两个整数相除后的余数 。如果两个整数中有负数,则先用两数绝对值 求余,最后结果的符号与被除数相同。 整数的算术运算 举例: o6%3/结果为0 o6%7/结果为6 o7%6/结果为1 o-7%6/结果为-1 o7%-6/结果为1 o-7%-6/结果为-1 只要有一个操作数是实数,两个操作数均 转换为double型,*和/重载为普通的乘和除 ,结果是实数。 实数的算术运算 5.0/4/结果为1.25,实数 5/4.0/结果为1.25,实数 5/4/整除,结果为1 二、自增、自减操作符 使变量当前值加1或减1,再赋给该变量自己: i+或+i /相当于i=i+1 j-或-j /相当于j=j1 int i=5, j=5, m, n; m=i+; /后置;相当于m=i; i=i+1; /结果:i的值为6,m的值为5; n=+j; /前置;相当于j=j+1;n=j; /结果:j的值为6,n的值为6; 例题 3-1 #include using namespace std; int main( ) int a,b, m=3,n=4; a=7*2+-3%5-4/3; b=m+ - -n; cout using namespace std; int main( ) int a=3,b=4,c; c=ab? +a:+b; cout大于5 5.5; 结结果为为0 =大于或等于6.3 = 5; 结结果为为1 操作符 名字实实例 说说明 !逻辑逻辑 非!(5 = = 5); 结结果为为0 z=x 七、赋值操作符 “=” 赋值与引用: 将数据存放到相应存储单元中称为赋值,如果 该单元中已有值,赋值操作以新值取代旧值;从 某个存储单元中取出数据使用,称为引用,引用 不影响单元中的值,即一个量可以多次引用。常 量只能引用,不能赋值。 赋值通过赋值运算符“=”来完成,其意义是将赋 值号右边的值送到左边变量所对应的单元中。 赋值号不是等号,它具有方向性。 复合赋值运算符: 操作符实实例等价于 =n = 25 + =n += 25n = n + 25 - =n - = 25n = n - 25 * =n *= 25n = n * 25 / =n /= 25n = n / 25 % =n %= 25n = n % 25 int main( ) int a,b,c; a=1,b=2,c=a+b+3; cout using namespace std; int main ( ) cout (CWnd *wnd)- FormHandle 结结构或类类中的域变变量.(CWnd wnd). FromHandle 数组组下标标操作符 nYearsMonthsDays1012366 内存分配操作符newnew CWnd 内存释释放操作符deletedelete (CWnd *wnd) 3.2 表达式 n算术表达式。例如,a+5.2/3.0-9%5 n关系表达式。例如,m=x n逻辑表达式。例如,!a int main( ) char x=m,y=n; int n; n=xch2; ch1=ch2-1,ch3=ch2+1; coutch1“,”ch2“,”ch3endl ; coutint(ch1)“,”int(ch2)“,” int(ch3)endl; 例:输出用户指定字符的前驱字符和例:输出用户指定字符的前驱字符和 后继字符及其后继字符及其ASCIIASCII码值。码值。 自动类型转换 (1)字符可以作为整数参与数值运算,整数值 为其ASCII码。 (2)操作数为字符或短整型时,系统自动变换 成整型。 (3)操作数为实型时,系统自动变换成双精度 型。 (4)其余情况,当两操作数类型不同时,将精 度低(或表示范围小)的操作数的数据类型变 换到与另一操作数类型相同再进行运算 自动类型转换的规则 例: 假设有如下变量定义 char c1, c2; int i1, i2; float x1, x2; o将c1转换成整型,完成c1*i1,结果为整型,表 示为t1; o将c1和x1均转换成双精度型,完成c1*x1,结果 为双精度型,表示为t2; o将c1和c2均转
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年国际美术设计师考试基础内容及答案
- 篮球模拟测试题及答案
- 助理广告师试题及答案知识架构
- 2024年助理广告师备考心得与实战经验分享试题及答案
- 植物辨识考试题及答案
- 2024年国际设计师考试的综合准备建议试题及答案
- 于设计教育中的广告设计课程建设探讨试题及答案
- 新材料在纺织品设计中的应用举例试题及答案
- 小升初舞蹈测试题及答案
- 北大竞赛数学试题及答案
- 土石方弃土消纳与处理协议
- 人教版小学英语词汇大全(三年级起点)
- 小学语文作文:五感法描写课件
- 2022年四川省自贡市中考化学试卷真题解析版
- 国开作业公共关系学-实训项目5:赞助活动(六选一)-赞助方案参考(含答案)2
- 老年人的饮食健康:为老年人提供合适的饮食
- 动态血糖监测知情同意书
- 光伏发电安全预评价模版
- 成品出货检验报告模板
- 【实用文档】生产制造过程流程图
- 水利水电工程高压喷射灌浆单元工程质量评定表(示范文本)
评论
0/150
提交评论