运算符是任何编程语言的基础。因此,如果不使用运算符,则C / C++编程语言的功能是不完整的。我们可以将运算符定义为符号,以帮助我们对操作数执行特定的数学和逻辑计算。换句话说,我们可以说运算符对操作数进行运算。
例如,考虑以下语句:
c = a + b;
这里,“+”是被称为加法运算符和“a”和“b”是操作数运算符。加法运算符告诉编译器将操作数“ a”和“ b”相加。
C / C++具有许多内置的运算符类型,它们的分类如下:
- 算术运算符:这些运算符用于对操作数执行算术/数学运算。示例:(+,-,*,/,%,++,–)。算术运算运算符有两种类型:
- 一元运算符:与一个操作数一起操作或一起使用的运算符是一元运算运算符。例如:(++,–)
- 二进制运算符:与两个操作数运算或一起使用的运算符是二进制运算符。例如:(+,–,*,/)
要详细了解算术运算符,请访问此链接。
- 关系运算符:这些运算符用于比较两个操作数的值。例如,检查一个操作数是否等于另一个操作数,一个操作数是否大于另一个操作数,等等。一些关系运算符是(==,> =,<=)。要详细了解这些运算符,请访问此链接。
- 逻辑运算符:逻辑运算符用于组合两个或多个条件/约束或补充所考虑的原始条件的评估。逻辑运算符是布尔值true或false。例如,当两个条件都满足时,在C或C++中以‘&&’运算符表示的逻辑AND将返回true。否则,它返回false。因此,当a和b都为真(即非零)时,a && b将返回true。要详细了解不同的逻辑运算符,请访问此链接。
- 按位运算符:按位运算符用于对操作数执行位级运算。首先将运算符转换为位级,然后对操作数进行计算。诸如加法,减法,乘法等数学运算可在位级别执行,以加快处理速度。例如,用C或C++表示为&运算符的按位AND将两个数字用作操作数,并对两个数字的每一位执行AND。仅当两个位均为1时,AND的结果才为1。要详细了解按位运算运算符,请访问此链接。
- 赋值运算符:赋值运算符用于将值分配给变量。赋值运算符的左侧操作数是一个变量,而赋值运算符的右侧操作数是一个值。右侧的值必须与左侧的变量的数据类型相同。否则编译器将引发错误。
不同类型的赋值运算符如下所示:- “ =” :这是最简单的赋值运算符。该运算符用于将右侧的值分配给左侧的变量。
例如:a = 10; b = 20; ch = 'y';
- “ + =” :此运算符是’+’和’=’运算符。该运算符首先将左侧变量的当前值与右侧值相加,然后将结果分配给左侧变量。
例子:(a += b) can be written as (a = a + b)
如果存储在a中的初始值是5。那么(a + = 6)= 11。
- “-=” :此运算符是’-‘和’=’运算符。该运算符首先从左侧变量的当前值中减去右侧的值,然后将结果分配给左侧的变量。
例子:(a -= b) can be written as (a = a - b)
如果存储在a中的初始值是8,则(a-= 6)= 2。
- “ * =” :此运算符是’*’和’=’运算符。此运算符首先将左侧变量的当前值乘以右侧变量的值,然后将结果分配给左侧变量。
例子:(a *= b) can be written as (a = a * b)
如果最初存储在a中的值为5。则(a * = 6)= 30。
- “ / =” :此运算符是’/’和’=’运算符。该运算符首先将左侧变量的当前值除以右侧值,然后将结果分配给左侧变量。
例子:(a /= b) can be written as (a = a / b)
如果存储在a中的初始值是6。则(a / = 2)= 3。
- “ =” :这是最简单的赋值运算符。该运算符用于将右侧的值分配给左侧的变量。
- 其他运算符:除了上述运算符外,还有其他一些C或C++运算符可用于执行某些特定任务。这里讨论其中一些:
- sizeof运算符:sizeof在C / C++编程语言中被大量使用。它是一个编译时一元运算运算符,可用于计算其操作数的大小。 sizeof的结果是无符号整数类型,通常用size_t表示。基本上,sizeof运算符用于计算变量的大小。要详细了解sizeof运算符,您可以访问此链接。
- 逗号运算符:逗号运算符(用标记表示)是一个二进制运算符,它求值第一个操作数并丢弃结果,然后求值第二个操作数并返回该值(和类型)。逗号运算符的优先级是所有C运算符符中的最低。逗号既充当运算符,又充当分隔符。要详细了解逗号,请访问此链接。
- 条件运算符:条件运算符的形式为Expression1吗?表达式2:表达式3 。此处,表达式1是要评估的条件。如果condition(Expression1)为True ,则将执行并返回Expression2的结果;否则,如果condition(Expression1)为false ,则将执行并返回Expression3的结果。我们可以替换条件运算符对if..else语句的使用。要详细了解条件运算符,请访问此链接。
运算符优先级图
下表描述了C / C++中运算符的优先级顺序和关联性。运算符的优先级从上到下递减。
Operator | Description | Associativity |
---|---|---|
() | Parentheses (function call) | left-to-right |
[] | Brackets (array subscript) | |
. | Member selection via object name | |
-> | Member selection via pointer | |
++/– | Postfix increment/decrement | |
++/– | Prefix increment/decrement | right-to-left |
+/- | Unary plus/minus | |
!~ | Logical negation/bitwise complement | |
(type) | Cast (convert value to temporary value of type) | |
* | Dereference | |
& | Address (of operand) | |
sizeof | Determine size in bytes on this implementation | |
*,/,% | Multiplication/division/modulus | left-to-right |
+/- | Addition/subtraction | left-to-right |
<< , >> | Bitwise shift left, Bitwise shift right | left-to-right |
< , <= | Relational less than/less than or equal to | left-to-right |
> , >= | Relational greater than/greater than or equal to | left-to-right |
== , != | Relational is equal to/is not equal to | left-to-right |
& | Bitwise AND | left-to-right |
^ | Bitwise exclusive OR | left-to-right |
| | Bitwise inclusive OR | left-to-right |
&& | Logical AND | left-to-right |
|| | Logical OR | left-to-right |
?: | Ternary conditional | right-to-left |
= | Assignment | right-to-left |
+= , -= | Addition/subtraction assignment | |
*= , /= | Multiplication/division assignment | |
%= , &= | Modulus/bitwise AND assignment | |
^= , |= | Bitwise exclusive/inclusive OR assignment | |
<>= | Bitwise shift left/right assignment | |
, | expression separator | left-to-right |