004. 使用各种运算符进行计算

在C语言中,运算符用于执行各种数学和逻辑运算。以下是一些常见的运算符及其用法,并通过具体的表达式来展示如何计算它们的值。

1. 算术运算符

算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法和取模。

  • 加法(+
int a = 5 + 3; // a 的值为 8
  • 减法(-
int b = 10 - 4; // b 的值为 6
  • 乘法(*
int c = 7 * 2; // c 的值为 14
  • 除法(/
int d = 20 / 5; // d 的值为 4
float e = 20 / 3.0; // e 的值为 6.666666(注意浮点数除法)
  • 取模(%
int f = 20 % 3; // f 的值为 2(20 除以 3 的余数)

2. 关系运算符

关系运算符用于比较两个值,返回布尔值(0 表示假,非0 表示真)。

  • 等于(==
int g = (5 == 5); // g 的值为 1(真)
  • 不等于(!=
int h = (5 != 3); // h 的值为 1(真)
  • 大于(>
int i = (10 > 5); // i 的值为 1(真)
  • 小于(<
int j = (3 < 10); // j 的值为 1(真)
  • 大于等于(>=
int k = (10 >= 10); // k 的值为 1(真)
  • 小于等于(<=
int l = (3 <= 10); // l 的值为 1(真)

3. 逻辑运算符

逻辑运算符用于组合多个条件,返回布尔值。

  • 逻辑与(&&
int m = (5 > 3) && (10 < 20); // m 的值为 1(真)
  • 逻辑或(||
int n = (5 > 3) || (10 > 20); // n 的值为 1(真)
  • 逻辑非(!
int o = !(5 > 3); // o 的值为 0(假)

4. 位运算符

位运算符用于对整数的二进制位进行操作。

  • 按位与(&
int p = 5 & 3; // p 的值为 1(5 的二进制为 101,3 的二进制为 011,按位与结果为 001)
  • 按位或(|
int q = 5 | 3; // q 的值为 7(5 的二进制为 101,3 的二进制为 011,按位或结果为 111)
  • 按位异或(^
int r = 5 ^ 3; // r 的值为 6(5 的二进制为 101,3 的二进制为 011,按位异或结果为 110)
  • 按位取反(~
int s = ~5; // s 的值为 -6(5 的二进制为 101,取反后为 010,加上符号位为 -6)
  • 左移(<<
int t = 5 << 1; // t 的值为 10(5 的二进制为 101,左移一位后为 1010)
  • 右移(>>
int u = 5 >> 1; // u 的值为 2(5 的二进制为 101,右移一位后为 010)

5. 赋值运算符

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

  • 简单赋值(=
int v = 10; // v 的值为 10
  • 复合赋值运算符
int w = 5;
w += 3; // 等价于 w = w + 3,w 的值为 8
w -= 2; // 等价于 w = w - 2,w 的值为 6
w *= 2; // 等价于 w = w * 2,w 的值为 12
w /= 3; // 等价于 w = w / 3,w 的值为 4
w %= 2; // 等价于 w = w % 2,w 的值为 0

6. 逗号运算符

逗号运算符用于将多个表达式组合在一起,返回最后一个表达式的值。

int x = (5, 10, 15); // x 的值为 15

综合示例

以下是一个综合使用各种运算符的C语言程序示例:

#include <stdio.h>

int main() {
    int a = 5 + 3 * 2; // 算术运算,先乘后加
    int b = (10 > 5) && (3 < 10); // 关系和逻辑运算
    int c = 5 & 3; // 位运算
    int d = 10;
    d += 5; // 复合赋值运算
    int e = (a, b, c); // 逗号运算

    printf("a = %d\n", a); // 输出 a 的值
    printf("b = %d\n", b); // 输出 b 的值
    printf("c = %d\n", c); // 输出 c 的值
    printf("d = %d\n", d); // 输出 d 的值
    printf("e = %d\n", e); // 输出 e 的值

    return 0;
}

输出结果

运行上述程序,输出结果如下:

a = 11
b = 1
c = 1
d = 15
e = 1

视频讲解

BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)