C/c++
中的运算符
运算符是任何编程语言的基础。我们可以将运算符定义为符号,帮助我们对操作数执行特定的数学和逻辑计算。换句话说,我们可以说一个运算符操作操作数。例如,'+'是用于加法的运算符,如下所示:
c = a + b;
这里,'+'是被称为加法运算符的运算符,而' a '和' b '是操作数。加法运算符告诉编译器将操作数“a”和“b”相加。
如果不使用运算符,C/C++编程语言的功能是不完整的。
C/C++有很多内置运算符,可以分为 6 种:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 按位运算符
- 赋值运算符
- 其他操作员
上面已经详细讨论了操作符:
1。算术运算符:
这些运算符用于对操作数执行算术/数学运算。示例:(+、-、*、/、%、+、–)。算术运算符有两种类型:
a)一元运算符:操作或处理单个操作数的运算符是一元运算符。例如:递增(++)和递减(–)运算符
int val = 5;
++val; // 6
b)二进制运算符:操作或处理两个操作数的运算符是二进制运算符。例如:加法(+)、减法(-)、乘法(*)、除法(/)运算符
int a = 7;
int b = 2;
cout<<a+b; // 9
2。关系运算符:
这些用于比较两个操作数的值。例如,检查一个操作数是否等于另一个操作数,一个操作数是否大于另一个操作数,等等。一些关系运算符是(==,> =,<= )(See 本文供更多参考)。
int a = 3;
int b = 5;
a < b;
// operator to check if a is smaller than b
3。逻辑运算符:
逻辑运算符用于组合两个或多个条件/约束,或者补充所考虑的原始条件的评估。逻辑运算符的运算结果是布尔值真或假。
例如,当考虑的两个条件都满足时,在 C 或 C++ 中表示为&&的逻辑与运算符返回真。否则,它返回 false。因此,当 a 和 b 都为真(即非零)时,a & & b 返回真(更多参考见这篇文章)。
(4 != 5) && (4 < 5); // true
4。按位运算符:
按位运算符用于对操作数执行位级操作。运算符首先转换为位级,然后对操作数执行计算。加法、减法、乘法等数学运算。可以在位级执行,以实现更快的处理。例如,在 C 或 C++ 中表示为 &运算符的按位“与”将两个数字作为操作数,并对两个数字的每一位进行“与”。仅当两位都为 1 时,“与”的结果才为 1。(详见这篇文章)。
int a = 5, b = 9; // a = 5(00000101), b = 9(00001001)
cout << (a ^ b); // 00001100
cout <<(~a); // 11111010
5。分配操作员:
赋值运算符用于给变量赋值。赋值运算符的左侧操作数是一个变量,右侧操作数是一个值。右侧的值必须与左侧的变量具有相同的数据类型,否则编译器将引发错误。
不同类型的赋值运算符如下所示: a .“=”:这是最简单的赋值运算符。该运算符用于将右边的值赋给左边的变量。 例如:
a = 10;
b = 20;
ch = 'y';
b .“+=”:这个运算符是“+”和“=”运算符的组合。该运算符首先将左边变量的当前值与右边的值相加,然后将结果赋给左边的变量。 例如:
(a += b) can be written as (a = a + b)
If initially value stored in a is 5\. Then (a += 6) = 11.
c .“-=”:这个运算符是“-”和“=”运算符的组合。该运算符首先从左边变量的当前值中减去右边的值,然后将结果赋给左边的变量。 例如:
(a -= b) can be written as (a = a - b)
If initially value stored in a is 8\. Then (a -= 6) = 2.
d .“* =”:这个运算符是“*”和“=”运算符的组合。该运算符首先将左边变量的当前值乘以右边的值,然后将结果赋给左边的变量。 例如:
(a *= b) can be written as (a = a * b)
If initially, the value stored in a is 5\. Then (a *= 6) = 30.
e .“/=”:这个运算符是“/”和“=”运算符的组合。该运算符首先将左边变量的当前值除以右边的值,然后将结果赋给左边的变量。 例如:
(a /= b) can be written as (a = a / b)
If initially, the value stored in a is 6\. Then (a /= 2) = 3.
6。其他操作员:
除了上述操作符之外,在 C 或 C++中还有一些其他的操作符可以用来执行一些特定的任务。这里讨论了其中的一些:
a .sizeof operator:
- sizeof 在 C/C++编程语言中被大量使用。
- 它是一个编译时一元运算符,可用于计算其操作数的大小。
- sizeof 的结果是无符号整数类型,通常用 size_t 表示。
- 基本上,操作符的大小用于计算变量的大小。(参考这篇文章)
b. 逗号运算符 :
- 逗号运算符(由标记表示)是一个二进制运算符,它计算第一个操作数并丢弃结果,然后计算第二个操作数并返回该值(和类型)。
- 逗号运算符是所有 C 运算符中优先级最低的。
- 逗号既是运算符又是分隔符。(参考这篇文章)
c. 条件运算符 :
- 条件运算符的形式是表达式 1?表达式 2:表达式 3 。
- 这里,表达式 1 是要评估的条件。如果条件(表达式 1)为真,那么我们将执行并返回表达式 2 的结果;否则,如果条件(表达式 1)为假,那么我们将执行并返回表达式 3 的结果。
- 我们可以取代 if 的使用..带有条件运算符的 else 语句。(参考这篇文章)
操作员优先图表
下表描述了 C / C++中运算符的优先顺序和结合性。运算符的优先级从上到下递减。
| 优先 | 操作员 | 描述 | 结合性 | | --- | --- | --- | --- | | one | () | 括号(函数调用) | 从左向右 | | [] | 括号(数组下标) | | | 。 | 通过对象名选择成员 | | | -> | 通过指针选择成员 | | | ++/– | 后缀增量/减量 | | | Two | ++/– | 前缀增量/减量 | 从右向左 | | +/- | 一元正/负 | | | !~ | 逻辑否定/按位补码 | | | (类型) | 强制转换(将值转换为类型的临时值) | | | * | 解除…的关联 | | | & | (操作数的)地址 | | | 西泽夫 | 确定此实现的字节大小 | | | three | *,/,% | 乘法/除法/模数 | 从左向右 | | four | +/- | 加法/减法 | 从左向右 | | five | << , >> | 按位左移,按位右移 | 从左向右 | | six | < , <= | 关系小于/小于或等于 | 从左向右 | | > , >= | 关系大于/大于或等于 | 从左向右 | | seven | == , != | 关系等于/不等于 | 从左向右 | | eight | & | 按位“与” | 从左向右 | | nine | ^ | 按位异或 | 从左向右 | | Ten | | | 按位包含或 | 从左向右 | | Eleven | && | 逻辑“与” | 从左向右 | | Twelve | || | 逻辑或 | 从左向右 | | Thirteen | ?: | 三元条件 | 从右向左 | | Fourteen | = | 分配 | 从右向左 | | += , -= | 加法/减法赋值 | | | *= , /= | 乘法/除法赋值 | | | %= , &= | 模数/位“与”赋值 | | | ^= , |= | 按位异或赋值 | | | <> = | 按位向左/向右移位赋值 | | | Fifteen | , | 表达式分隔符 | 从左向右 | 如果你发现任何不正确的地方,或者你想分享更多关于上面讨论的话题的信息,请写评论。版权属于:月萌API www.moonapi.com,转载请注明出处