永发信息网

谁能给我详细讲下c++运算符的运算规则,最好能举例!

答案:2  悬赏:0  手机版
解决时间 2021-06-02 06:15
  • 提问者网友:我们很暧昧
  • 2021-06-01 11:22

我实在是搞不懂所谓的c运算,谁能给我详细的解答一下

还有每种运算符所代表的意思请给我说明一下,最好能是全部的

我c运算实在是马马虎虎,所以请大虾详细说明,谢谢。。。 。。。

最佳答案
  • 五星知识达人网友:笑迎怀羞
  • 2021-06-01 12:13

优先级 运算符 功能说明 结合性



2 ~ 按位求反 右结合2 ++ —— 增1减1运算符 右结合


2 + — 取正取负运算符 右结合


3 * / % 乘法,除法,取余 左结合


4 + - 加法,减法 左结合


5 《《 》》 左移位,右移位 左结合


6 < > <= >= 小于,大于,小于等于,大于等于 左结合


7 == != 等于,不等于 左结合


8 & 按位与 左结合


9 ^ 按位异或 左结合


10 | 按位或 左结合


11 && 逻辑与 左结合


12 | | 逻辑或 左结合


13 ?: 条件运算符 右结合


14 = += -= *= /=


%= <<= >>= &=^= |= 赋值运算符 右结合


15 , 逗号运算符 左结合


使用运算符时,要注意以下几点:


(1) 运算符实现的功能。


(2) 运算符个数及类型。


(3) 运算符的优先级别。


(4) 运算符的优先级别。


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


逗号表达式的执行规则是从左到右逐个表达式执行,最后一个表达式的值是该逗号表达式的值。


注意:逗号运算符的优先级最低。


忽忽。。。。累死了,整理了好久





全部回答
  • 1楼网友:鸠书
  • 2021-06-01 13:48

优先决   括号成员第一; //括号运算符[]() 成员运算符. ->   全体单目第二; //所有的单目运算符比如++ -- +(正) -(负) 指针运算*&   乘除余三,加减四; //这个"余"是指取余运算即%   移位五,关系六; //移位运算符:<< >> ,关系:> < >= <= 等   等于(与)不等排第七; //即== !=   位与异或和位或; //这几个都是位运算: 位与(&)异或(^)位或(|)   "三分天下"八九十;   逻辑或跟与; //逻辑运算符:|| 和 &&   十二和十一; //注意顺序:优先级(||) 底于 优先级(&&)   条件高于赋值, //三目运算符优先级排到 13 位只比赋值运算符和","高//需要注意的是赋值运算符很多!   逗号运算级最低! //逗号运算符优先级最低

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯