C++运算符优先级.docx
《C++运算符优先级.docx》由会员分享,可在线阅读,更多相关《C++运算符优先级.docx(6页珍藏版)》请在咨信网上搜索。
以下是C++程式语言中的所有运算子的优先级和结合性列表。 优先级 运算子 叙述 示例 重载性 结合性 1 :: 作用域解析(C++专有) Class::age = 2; 否 由左至右 2 ++ 后缀递增 i++ -- 后缀递减 i-- {} 组合 {i++;a*=i;} () 函数调用或变量初始化 c_tor(int x, int y) : _x(x), _y(y * 10) {} [] 数组访问 array[4] = 2; . 以对象方式访问成员 obj.age = 34; 否 -> 以指针方式访问成员 ptr->age = 34; dynamic_cast 运行时检查类型转换(C++专有) Y& y = dynamic_cast(x); 否 static_cast 未经检查的类型转换(C++专有) Y& y = static_cast(x); 否 reinterpret_cast 重定义类型转换(C++专有) int const* p = reinterpret_cast(0x1234); 否 const_cast 更改非常量属性(C++专有) int* q = const_cast(p); 否 typeid 获取类型信息(C++专有) std::type_info const& t = typeid(x); 否 3 ++ 前缀递增 ++i 由右至左 -- 前缀递减 --i + 一元正号 int i = +1; - 一元负号 int i = -1; ! not 逻辑非 !的备用拼写 if (!done) … ~ compl 按位取反 ~的备用拼写 flag1 = ~flag2; (type) 强制类型转换 int i = (int)floatNum; * 引用 int data = *intPtr; & 取某某的地址(参考) int *intPtr = &data; sizeof 某某的大小 size_t s = sizeof(int); 否 new 动态内存分配(C++专有) long* pVar = new long; new[] 动态数组内存分配(C++专有) long* array = new long[20]; delete 动态内存释放(C++专有) delete pVar; delete[] 动态数组内存释放(C++专有) delete [] array; 4 .* 成员对象选择(C++专有) obj.*var = 24; 否 由左至右 ->* 成员指针选择(C++专有) ptr->*var = 24; 5 * 乘法 int i = 2 * 4; / 除法 float f = 10.0 / 3.0; % 模数(取余) int rem = 4 % 3; 6 + 加法 int i = 2 + 3; - 减法 int i = 5 - 1; 7 << 位元左移 int flags = 33 << 1; >> 位元右移 int flags = 33 >> 1; 8 <</CODE> 小于关系 if (i < 42) … <= 小于等于关系 if (i <= 42) ... > 大于关系 if (i > 42) … >= 大于等于关系 if (i >= 42) ... 9 == eq 等于关系 ==的备用拼写 if (i == 42) ... != not_eq 不等于关系 !=的备用拼写 if (i != 42) … 10 & bitand 位元 AND &的备用拼写 flag1 = flag2 & 42; 11 ^ xor 位元 XOR(独占or) ^的备用拼写 flag1 = flag2 ^ 42; 12 | bitor 位元 OR(包含or) |的备用拼写 flag1 = flag2 | 42; 13 && and 逻辑 AND &&的备用拼写 if (conditionA && conditionB) … 14 || or 逻辑 OR ||的备用拼写 if (conditionA || conditionB) ... 15 c?t:f 三元条件运算 int i = a > b ? a : b; 否 由右至左 16 = 直接赋值 int a = b; += 以和赋值 a += 3; -= 以差赋值 b -= 4; *= 以乘赋值 a *= 5; /= 以除赋值 a /= 2; %= 以取余数赋值 a %= 3; <<= 以位元左移赋值 flags <<= 2; >>= 以位元右移赋值 flags >>= 2; &= and_eq 以位元AND赋值 &=的备用拼写 flags &= new_flags; ^= xor_eq 以位元XOR赋值 ^=的备用拼写 flags ^= new_flags; |= or_eq 以位元OR赋值 |=的备用拼写 flags |= new_flags; 17 throw 抛出异常 throw EClass(“Message”); 否 18 , 循环评估运算 for (i = 0, j = 0; i < 10; i++, j++) … 由左至右 1. 算术运算符及算术表达式: c++中的算术运算符有:+(取正或加),-(取负或减),*(乘),/(除),%(取余),++(增1), --(减1)。其中+(取正),-(取负),++(增1),--(减1)是单目运算符,其余是双目运算符。 +,-,*,/ 运算符与其在数学中的意义,优先级,结合性基本相同。但必须注意“/”运算符,当它的两个操作数都是整数时,其计算结果也是整型,结果为两整数相除后的商。例,3/2的结果是1,3/5的结果是0. 运算符“%”是取余运算,结果为两个整数相除后的余数。例如,5%3的结果是2,6%2结果是0. 注意:要求取余运算符“%”的两个操作数必须是整型或字符型数据。 增1,减1运算是将变量的值增1或减1.这两个运算符都有前置和后置两种形式。前置形式是先计算操作数的值(增1或减1),然后把操作数的值作为表达式的结果。而后置形式是先将操作数的值作为表达式的结果,然后将操作数的值(增1或减1)。 2. 关系运算符及关系表达式: 关系运算是比较两个操作数的大小。当两个操作数满足关系运算符指定的关系时,表达式的值为true,否则为false。 在c++中,关系运算符都是双目运算符,共有6个:<(小于)<=(小于等于)>(大于)>=(大于等于)==(等于)!=(不等于)。其中前4种和后2种属于不同的优先级,前4种的优先级高于后2种。 由关系运算符和操作运算符组成的表达式为关系表达式,关系表达式的结果为布尔类型。 3. 逻辑运算符及逻辑表达式: 逻辑运算符共有3个:1个单目运算符“!”,2个双目运算符“&&”(逻辑与)和“||”(逻辑或)。其中逻辑与的优先级比逻辑或高。 逻辑运算的结果是逻辑值。参与逻辑运算的操作数可以是任一基本类型的数据,在进行判断时,系统将非零值作为真,零为假。 对于单目运算符“!”(逻辑求反),若其操作数为false(0),运算结果为true(1),否则为false(0)。例如,!5的结果为0. 对于“&&”(逻辑与)运算符,只要两个操作数中有一个为false(0),运算结果就为false(0),否则true(1).例如,2&&5的结果为1. 对于“||”(逻辑或)运算符,只要两个操作数中有一个为true(1),运算结果就为true(1),否则为false(0)。例如,5||0的结果为1. 由逻辑预算副和操作数构成的表达式为逻辑表达式,逻辑表达式的结果为布尔类型。 注意:当多个“||”(逻辑或)运算符,只要两个操作数中有一个为true(1),运算结果就为true(1),否则则为false(0),停止后续计算,例如:a=0,b=2,c=3;表达式a++||b++||c++运算后,整个表达式值为true(1),a的值为1,b的值为2,c的值为3. 4. 赋值运算符和赋值表达式: c++中的赋值运算符分两种:简单赋值运算和复合赋值运算符。赋值运算符都是二元运算符,右结合。由赋值运算符和操作数组成的表达式称为赋值表达式。 (1)简单赋值运算符 c++中的简单赋值运算符为“=”。其表达式的一般形式为: 变量=表达式 该表达式执行时,先计算赋值运算符右部“表达式”的值,然后将它赋给左边的变量。赋值表达式的值为左边变量的值,其类型为左边变量的类型。 (2) 复合赋值运算符: 复合赋值运算符由一个基本赋值运算符和其他一些运算符复合构成,共有10个,分别为:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=. 如果以“op”表示某种运算符,则复合赋值表达式的一般形式为: 变量op=表达式 等价于: 变量=变量op表达式 即先用左部变量和右部表达式作数值运算,然后将运算结果送给左部变量。例如: a+=3 等价于 a=a+3 使用复合赋值运算符不仅书写简练,而且经过编译以后生成的代码少。 5. 位运算符: c++提供了6个位运算符:~(按位求反),&(按位与),|(按位或),^(按位异或),<<(左移位),>>(右移位),其中按位求反是单目运算符,其余都是双目运算符。 位运算符是对其操作数按二进制形式逐位进行运算,参与运算的操作数都应为整型数,不能是实型数。 (1)~(按位求反):其作用是对一个二进制数的每一位求反,即0→1,1→0. (2)&(按位求反):其作用是对两个操作数对应的每一位分别进行逻辑与操作。两操作数对应位都是1,则该位运算结果为1,否则该位运算结果为0. (3)|(按位或):其作用是对两个操作数对应的每一位非别进行逻辑或操作。两操作数对应位中有1位是1,则该位运算结果为1,否则该位运算结果为0. (4)^(按位异或):其作用是对两个操作数对应的每一位分别进行逻辑异或操作。两操作数对应位的值不同,则该位运算结果为1,否则该位运算结果为0. (5)>>(右移位):将左操作数的各二进制位右移,右移位数由右操作数给出。右移1位相当于将操作数除以2。例如,表达式8<<1的结果为4. (6)<<(左移位):将左操作数的各二进制位左移,左移位数由右操作数给出。左移1位相当于将操作数乘以2.例如,表达式2<<1的结果为4. 注意:移位运算的结果就是位运算表达式的值,参与运算的两个操作数的值并没有发生变化。 6. 条件运算符: 条件运算符“?:”是c++中位移的一个三目运算符,其使用的一般形式为: 表达式?表达式2:表达式3 该表达式执行时,先计算表达式1,若其值为真,则表达式2的值为条件表达式的值;否则表达式3的值为条件表达式的值。条件运算符的优先级低于算术运算符,关系运算符和逻辑运算符,高于赋值运算符,结合性“从右到左”。 7.逗号运算符: 由逗号运算符构成的表达式称为逗号表达式,其一般形式为: 表达式1,表达式2。。。,表达式n 逗号表达式的执行规则是从左到右逐个表达式执行,最后一个表达式的值是该逗号表达式的值。 注意:逗号运算符的优先级最低。- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 运算 优先级
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文