📜  C++表达式(1)

📅  最后修改于: 2023-12-03 14:59:52.486000             🧑  作者: Mango

C++表达式

在C++中,表达式通常是由操作数和操作符组成的语句,它表示一些计算或者操作。C++支持的表达式类型有很多,包括算术表达式、关系表达式、逻辑表达式等。

本文将介绍C++中常见的表达式类型和各种操作符,以及它们的使用方法。

基础概念

操作数

操作数是表达式中参与运算的值,它可以是变量、常量、函数返回值或者其他表达式等。

int a = 1;
int b = 2;
int c = a + b; // a和b为操作数

运算符

运算符是用来执行某种操作的符号或关键词,它作用于操作数或其他的表达式,并产生一个新的值或结果。

int a = 1;
int b = 2;
int c = a + b; // +为运算符

优先级

C++中各种运算符按照优先级从高到低的顺序执行,优先级高的运算符先执行。C++运算符的优先级可以参考下图。

结合性

结合性是指当表达式中有多个相同优先级的运算符时,它们的执行顺序是左结合还是右结合。C++中大部分运算符都是左结合的。

int a = 1, b = 2, c = 3;
int d = a + b + c; // 先计算a+b,再计算a+b+c
算术表达式

算术表达式是由算术运算符和操作数组成的表达式,常见的算术运算符有加减乘除和取余等。

int a = 1, b = 2;
int c = a + b; // 加法
int d = a - b; // 减法
int e = a * b; // 乘法
int f = a / b; // 除法
int g = a % b; // 取余
关系表达式

关系表达式用于比较两个值之间的大小关系,结果为布尔值true或false。

int a = 1, b = 2;
bool c = a > b;  // 大于
bool d = a < b;  // 小于
bool e = a >= b; // 大于等于
bool f = a <= b; // 小于等于
bool g = a == b; // 等于
bool h = a != b; // 不等于
逻辑表达式

逻辑表达式用于判断两个条件之间的关系,常见的逻辑运算符有与、或和非。

bool a = true, b = false, c = true;
bool d = a && b; // 与
bool e = a || b; // 或
bool f = !a;     // 非
赋值表达式

赋值表达式用于将一个表达式的值赋给变量或者一个数组元素。

int a = 1, b = 2;
a = b; // 将b的值赋给a

赋值表达式还支持多个赋值。

int a = 1, b = 2, c = 3;
a = b = c; // c的值赋给b,再将b的值赋给a
自增和自减表达式

自增和自减表达式用于对变量的值进行加1或减1操作。

int a = 1;
a++; // a的值加1
a--; // a的值减1

自增和自减表达式既可以放在变量前面,也可以放在变量后面,它们的执行顺序是不同的。

int a = 1;
int b = ++a; // 先执行自增,再将a的值赋给b
int c = a--; // 先将a的值赋给c,再执行自减
三目运算符

三目运算符是C++中唯一的三元运算符,它可以简化if语句的写法。

int a = 1, b = 2;
int max = (a > b) ? a : b; // 如果a>b为true,则max=a,否则max=b
逗号运算符

逗号运算符可以在一条语句中依次执行多个表达式,并以最后一个表达式的结果作为整个逗号表达式的结果。

int a = 1, b = 2, c = 3;
int d = (a++, b++, c++); // a,b,c先分别加1,然后d=c
sizeof运算符

sizeof运算符可以用来计算类型或变量的大小。

int a = 1;
int size = sizeof(a); // 获取变量a的字节数,一般为4
强制类型转换

强制类型转换是将一个数据类型转换成另外一个数据类型,这种转换在某些情况下是必须的。

int a = 1;
double b = (double) a; // 将变量a转换成double类型