C++语言之运算符与表达式

丰富的运算符与表达式是C++语言的特点之一。下面会介绍运算符与表达式。


目录

1. 算数运算符

1.1 模运算符

1.2 除法运算符

1.3 自增自减运算符

1.4 复合算术赋值

2.关系运算符

3.逻辑运算符

3.1 与

3.2 或

3.3 非

4.位操作运算符

5.赋值运算符

6.条件运算符

7.逗号运算符

8.指针运算符

9.求字节数运算符

10.特殊运算符


1. 算数运算符

分为加(+)、减(-)、乘(*)、除(/)、求余(%)、自增(++)、自减(--)七种

1.1 模运算符

“%”也称为求余运算符,是双目运算符,操作数只能是整型数。如a % b 就是 a 除以 b 的余数。

1.2 除法运算符

C++中的“/”运算符很特别,它只取除过后的商。如 a 除以 b 的值是 a 除以 b 的商。

1.3 自增自减运算符

自增自减运算符用来对操作数进行加一和减一。

1.4 复合算术赋值

如 a += 1,相当于 a = a + 1。

2.关系运算符

分为大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)、和不等于(!=)六种,它们都是三目运算符。它们运算的结果只有1和0两种,分别代表关系式成立和不成立。

3.逻辑运算符

分为与(&&)、或(||)、非(!)三种。它们运算的结果也只有1和0两种,分别代表关系式成立和不成立。

3.1 与

只有两个量都为真时,结果才为真,否则为假。

3.2 或

两个量只要有一个为真,结果就为真;两个量都为假时,结果为假。

3.3 非

参与运算量为真时,结果为假;参与运算量为假时,结果为真。

4.位操作运算符

分为按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)、右移(>>)六种。

运算符说明例子
&只有两个数对应的二进制都为1时,结果才为1,否则为0。9&5结果1
|两个数对应的二进制只要有一个为1,结果就为1;两个数对应的二进制都为0时,结果为0。9|5结果13
^两个数对应的二进制不相同时,结果就为1;两个数对应的二进制相同时,结果就为0。9^5结果12
~把运算数的各个二进制位按位取反。~9结果1111 0110
<<把它左边的运算符的各二进制位向左移若干位,它右边的数hi指定移动的位数,高位丢弃,低位补0。3<<4结果00110000(48)
>>把它左边的运算符的各二进制位向右移若干位,它右边的数hi指定移动的位数。>>215>>2结果0000 0011(3)

5.赋值运算符

分为简单赋值(=)、复合算术赋值(+=、-=、*=、/=、%=)和复合位运算符赋值(&=、|=、^=、>>=、<<=)三类共三十一种。

6.条件运算符

三目运算符,用来条件求值(?:)。

7.逗号运算符

把若干表达式组成一个表达式(,)。

8.指针运算符

分为取内容(*)和取地址(&)两种运算。

9.求字节数运算符

计算数据类型所占字节数(sizeof)。

10.特殊运算符

有括号()、下标[]、成员(->,.)等几种。


创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,如果喜欢我的文章,给个关注吧!

冰焰狼 | 文

如果本篇博客有任何错误,请批评指教,不胜感激 !

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这里是使用C语言实现前缀表达式求值的示例代码: ```c #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 int stack[MAX_SIZE]; int top = -1; void push(int value) { if (top >= MAX_SIZE - 1) { printf("Stack overflow"); exit(EXIT_FAILURE); } stack[++top] = value; } int pop() { if (top == -1) { printf("Stack underflow"); exit(EXIT_FAILURE); } return stack[top--]; } int evaluate(char* expression) { int i = 0, operand1, operand2; char ch; while ((ch = expression[i++]) != '\0') { if (ch >= '0' && ch <= '9') { push(ch - '0'); } else if (ch == '+' || ch == '-' || ch == '*' || ch == '/') { operand2 = pop(); operand1 = pop(); switch (ch) { case '+': push(operand1 + operand2); break; case '-': push(operand1 - operand2); break; case '*': push(operand1 * operand2); break; case '/': push(operand1 / operand2); break; } } } return pop(); } int main() { char expression[MAX_SIZE]; printf("Enter the prefix expression: "); scanf("%s", expression); int result = evaluate(expression); printf("Result: %d", result); return 0; } ``` 该程序首先定义了一个栈来存储操作数。栈的push和pop操作用于在栈中添加和删除元素。evaluate函数用于评估前缀表达式。在该函数中,使用循环遍历表达式中的每个字符。如果字符是一个数字,则将其转换为整数并将其推送到栈中。如果字符是一个运算符,则从栈中弹出两个操作数,并使用该运算符对它们进行操作。最后,该函数返回栈中的最后一个元素,即表达式的结果。在main函数中,用户输入前缀表达式,然后调用evaluate函数来计算表达式并输出结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值