跳转到内容

C 语言运算符定义

来自代码酷

C语言运算符定义[编辑 | 编辑源代码]

介绍[编辑 | 编辑源代码]

在C语言中,运算符是用于执行特定数学或逻辑操作的符号。运算符可以操作一个或多个操作数(变量或常量),并返回结果。C语言提供了丰富的运算符类型,包括算术运算符、关系运算符、逻辑运算符、位运算符等。理解运算符的定义和使用是掌握C语言编程的基础。

运算符分类[编辑 | 编辑源代码]

C语言的运算符可以分为以下几类:

1. 算术运算符[编辑 | 编辑源代码]

用于执行基本的数学运算,如加、减、乘、除等。

运算符 描述 示例
+ 加法 a + b
- 减法 a - b
* 乘法 a * b
/ 除法 a / b
% 取模(求余) a % b

示例代码[编辑 | 编辑源代码]

#include <stdio.h>

int main() {
    int a = 10, b = 3;
    printf("加法: %d\n", a + b);  // 输出 13
    printf("减法: %d\n", a - b);  // 输出 7
    printf("乘法: %d\n", a * b);  // 输出 30
    printf("除法: %d\n", a / b);  // 输出 3(整数除法)
    printf("取模: %d\n", a % b);  // 输出 1
    return 0;
}

2. 关系运算符[编辑 | 编辑源代码]

用于比较两个值的关系,返回布尔值(1表示真,0表示假)。

运算符 描述 示例
== 等于 a == b
!= 不等于 a != b
> 大于 a > b
< 小于 a < b
>= 大于等于 a >= b
<= 小于等于 a <= b

示例代码[编辑 | 编辑源代码]

#include <stdio.h>

int main() {
    int a = 5, b = 10;
    printf("a == b: %d\n", a == b);  // 输出 0
    printf("a != b: %d\n", a != b);  // 输出 1
    printf("a > b: %d\n", a > b);    // 输出 0
    printf("a < b: %d\n", a < b);    // 输出 1
    return 0;
}

3. 逻辑运算符[编辑 | 编辑源代码]

用于组合多个条件,通常与关系运算符一起使用。

运算符 描述 示例
&& 逻辑与(AND) a && b
逻辑或(OR) a b
! 逻辑非(NOT) !a

示例代码[编辑 | 编辑源代码]

#include <stdio.h>

int main() {
    int a = 1, b = 0;
    printf("a && b: %d\n", a && b);  // 输出 0
    printf("a || b: %d\n", a || b);  // 输出 1
    printf("!a: %d\n", !a);          // 输出 0
    return 0;
}

4. 位运算符[编辑 | 编辑源代码]

对二进制位进行操作,常用于底层编程。

运算符 描述 示例
& 按位与 a & b
按位或 b
^ 按位异或 a ^ b
~ 按位取反 ~a
<< 左移 a << 2
>> 右移 a >> 2

示例代码[编辑 | 编辑源代码]

#include <stdio.h>

int main() {
    int a = 5;  // 二进制: 0101
    int b = 3;  // 二进制: 0011
    printf("a & b: %d\n", a & b);  // 输出 1 (0001)
    printf("a | b: %d\n", a | b);  // 输出 7 (0111)
    printf("a ^ b: %d\n", a ^ b);  // 输出 6 (0110)
    printf("~a: %d\n", ~a);        // 输出 -6(补码表示)
    printf("a << 1: %d\n", a << 1); // 输出 10 (1010)
    printf("a >> 1: %d\n", a >> 1); // 输出 2 (0010)
    return 0;
}

5. 赋值运算符[编辑 | 编辑源代码]

用于给变量赋值,可以与其他运算符组合。

运算符 描述 示例
= 简单赋值 a = b
+= 加后赋值 a += b
-= 减后赋值 a -= b
*= 乘后赋值 a *= b
/= 除后赋值 a /= b
%= 取模后赋值 a %= b

示例代码[编辑 | 编辑源代码]

#include <stdio.h>

int main() {
    int a = 5;
    a += 3;  // 等价于 a = a + 3
    printf("a: %d\n", a);  // 输出 8
    return 0;
}

6. 其他运算符[编辑 | 编辑源代码]

包括条件运算符(三元运算符)、逗号运算符、sizeof运算符等。

条件运算符[编辑 | 编辑源代码]

语法:condition ? expr1 : expr2

#include <stdio.h>

int main() {
    int a = 5, b = 10;
    int max = (a > b) ? a : b;
    printf("最大值: %d\n", max);  // 输出 10
    return 0;
}

sizeof运算符[编辑 | 编辑源代码]

返回变量或类型的大小(以字节为单位)。

#include <stdio.h>

int main() {
    printf("int 大小: %zu\n", sizeof(int));  // 输出 4(通常)
    return 0;
}

运算符优先级[编辑 | 编辑源代码]

运算符的优先级决定了表达式中运算的执行顺序。以下是一些常见运算符的优先级(从高到低):

  1. 括号 ()
  2. 一元运算符(如 !, ~, ++, --
  3. 乘、除、取模 *, /, %
  4. 加、减 +, -
  5. 关系运算符 <, <=, >, >=
  6. 相等性运算符 ==, !=
  7. 逻辑与 &&
  8. 逻辑或 ||
  9. 赋值运算符 =, +=, -=

优先级示例[编辑 | 编辑源代码]

#include <stdio.h>

int main() {
    int a = 5, b = 10, c = 2;
    int result = a + b * c;  // 先计算 b * c,再 + a
    printf("结果: %d\n", result);  // 输出 25
    return 0;
}

实际应用案例[编辑 | 编辑源代码]

案例1:计算圆的面积[编辑 | 编辑源代码]

使用算术运算符计算圆的面积。

#include <stdio.h>
#define PI 3.14159

int main() {
    float radius = 5.0;
    float area = PI * radius * radius;
    printf("圆的面积: %.2f\n", area);  // 输出 78.54
    return 0;
}

案例2:判断闰年[编辑 | 编辑源代码]

使用逻辑运算符和关系运算符判断闰年。

#include <stdio.h>

int main() {
    int year = 2024;
    int is_leap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
    printf("%d 是闰年吗? %d\n", year, is_leap);  // 输出 1(是)
    return 0;
}

总结[编辑 | 编辑源代码]

C语言的运算符是编程的基础工具,掌握它们的定义和使用对于编写高效、清晰的代码至关重要。通过本文的学习,你应该能够理解各类运算符的功能、优先级以及实际应用场景。