c语言中关系运算符和自加自减运算优先级哪个高
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言中关系运算符和自加自减运算优先级哪个高相关的知识,希望对你有一定的参考价值。
c语言中关系运算符比自加自减运算优先级低。
各种运算符间的优先级从高到低为数值运算符、字符串运算符、关系运算符、逻辑运算符。可以用括号改变优先级顺序,使得括号内的运算优先于括号外的运算。对于多重括号,总是由内到外强制表达式的某些部分优先运行。自加自减运算符属于数值运算符,优先级比关系运算符高。
扩展资料:
每种同类型的运算符都有内部的运算符优先级,不同类型的运算符之间也有相应的优先级顺序。一个表达式中既可以包括相同类型的运算符,也可以包括不同类型的运算符或者函数。当多种运算符出现在同一个表达式中时,应该先按照不同类型运算符间的优先级进行运算。
相同优先级中,按结合性进行结合。大多数运算符结合性是从左到右,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
参考技术A 以自增运算符为例,当自增运算符++作用于一个变量时例如:当i=3时++i这个算术表达式的值为4,同时变量i的值也由原来的3改变为4。
一般情况下,计算表达式后不改变变量本身的值,而++运算符和--运算符组成的表达式计算后,则改变变量的值,这称为运算符的副作用。
这类运算符在计算表达式时,一定要注意区分表达式的值和变量的值。追问
非常感谢您的回答,但是我想你还是与我的问题有些许出入,我想问的是在有大于号小于号和自加自减同时存在时哪个优先级高一点。比如++j<2应该先算j<2还是++j呢?希望您能帮我解决,谢谢你了。
参考技术B 不知道现在看到是不是有点迟了,自加的优先级是要高于关系运算符的,这里是++y所以首先应该先给y+1再判断y+1和2的大小,但如果是y++的话就要先判断y和2的大小,然后再给y+1追问嗯嗯,谢谢你,这么久了还来答复我的问题,费心了,谢谢!
本回答被提问者采纳自加自减运算符重载
#include <iostream> using namespace std; class CDemo { private: int n; public: CDemo(int i = 0):n(i){} CDemo& operator++(); CDemo operator++(int); operator int() { return n; } friend CDemo& operator--(CDemo&); friend CDemo operator--(CDemo&, int); }; CDemo& CDemo::operator++() { n++; return *this; } CDemo CDemo::operator++(int k) { CDemo tmp(*this); n++; return tmp; } CDemo& operator--(CDemo& d) { d.n--; return d; } CDemo operator--(CDemo& d, int) { CDemo tmp(d); d.n--; return tmp; } int main(){ CDemo d(5); cout << (d++) << ","; //等价于 d.operator++(0); cout << d << ","; cout << (++d) << ","; //等价于 d.operator++(); cout << d << endl; cout << (d--) << ","; //等价于 operator--(d,0); cout << d << ","; cout << (--d) << ","; //等价于 operator--(d); cout << d << endl; return 0; }
以上是关于c语言中关系运算符和自加自减运算优先级哪个高的主要内容,如果未能解决你的问题,请参考以下文章