运算符是用于对操作数进行特定操作的符号或关键字。在C语言中,常见的运算符包括算术运算符、逻辑运算符、关系运算符、赋值运算符等。下面对这些运算符进行详细介绍,并讨论表达式的求值规则。

一、算术运算符

算术运算符用于执行基本的算术操作,例如加法、减法、乘法、除法等。

+   // 加法
-   // 减法
*   // 乘法
/   // 除法
%   // 取余

示例:

int a = 10;
int b = 5;
int c = a + b;  // c的值为15
int d = a - b;  // d的值为5
int e = a * b;  // e的值为50
int f = a / b;  // f的值为2
int g = a % b;  // g的值为0

二、逻辑运算符

逻辑运算符用于对布尔值进行逻辑运算,例如与、或、非等。

&&  // 逻辑与
||  // 逻辑或
!   // 逻辑非

示例:

int a = 5;
int b = 10;
_Bool c = (a > 0) && (b < 20);   // c的值为1(真)
_Bool d = (a > 0) || (b < 20);   // d的值为1(真)
_Bool e = !(a > 0);              // e的值为0(假)

三、关系运算符

关系运算符用于比较两个操作数之间的关系,例如相等、大于、小于等。

==  // 相等
!=  // 不等
>   // 大于
<   // 小于
>=  // 大于等于
<=  // 小于等于

示例:

int a = 5;
int b = 10;
_Bool c = (a == b);     // c的值为0(假)
_Bool d = (a != b);     // d的值为1(真)
_Bool e = (a > b);      // e的值为0(假)
_Bool f = (a < b);      // f的值为1(真)
_Bool g = (a >= b);     // g的值为0(假)
_Bool h = (a <= b);     // h的值为1(真)

四、赋值运算符

赋值运算符用于将一个值赋给变量。

=    // 赋值
+=   // 加后赋值
-=   // 减后赋值
*=   // 乘后赋值
/=   // 除后赋值
%=   // 取余后赋值

示例:

int a = 5;
int b = 10;
a += b;   // a的值为15
a -= b;   // a的值为5
a *= b;   // a的值为50
a /= b;   // a的值为5
a %= b;   // a的值为5

表达式的求值规则如下:

  1. 具有最高优先级的是圆括号内的表达式,其次是一元运算符(如取地址、取负等),然后是乘法和除法运算,最后是加法和减法运算。
  2. 如果两个运算符具有相同的优先级,则从左到右进行结合。
  3. 在表达式中,先计算表达式中的子表达式,然后再将结果用于更大的表达式中。

示例:

int a = 5;
int b = 10;
int c = 15;
int d = (a + b) * c;     // d的值为225
int e = a * b + c;       // e的值为65
int f = a + b * c;       // f的值为155
int g = a * (b + c);     // g的值为75

以上就是C语言中常见运算符的介绍,以及表达式的求值规则。这些运算符和规则在编写C语言程序时非常重要,可以通过它们实现各种复杂的计算和逻辑操作。