C 语言中的运算符
C 语言中的运算符是用来执行各种操作的符号,主要包括算术运算、关系运算、逻辑运算等。C 语言有多种类型的运算符,以下是常见的分类:
- 算术运算符(Arithmetic Operators)
- 关系运算符(Relational Operators)
- 逻辑运算符(Logical Operators)
- 位运算符(Bitwise Operators)
- 赋值运算符(Assignment Operators)
- 自增/自减运算符(Increment/Decrement Operators)
- 条件运算符(Conditional (Ternary) Operator)
- 逗号运算符(Comma Operator)
- 指针运算符(Pointer Operators)
- 类型转换运算符(Type Casting Operator)
以下是各类运算符的详细介绍:
1. 算术运算符(Arithmetic Operators)
用于进行常见的数学运算。
| 运算符 | 描述 | 例子 |
|---|---|---|
+ | 加法 | a + b |
- | 减法 | a - b |
* | 乘法 | a * b |
/ | 除法 | a / b |
% | 取余(模运算) | a % b |
示例:
#include <stdio.h>
int main() {
int a = 10, b = 5;
printf("a + b = %d\n", a + b); // 15
printf("a - b = %d\n", a - b); // 5
printf("a * b = %d\n", a * b); // 50
printf("a / b = %d\n", a / b); // 2
printf("a %% b = %d\n", a % b); // 0
return 0;
}
2. 关系运算符(Relational Operators)
用于比较两个值的关系,返回一个布尔值(true 或 false)。
| 运算符 | 描述 | 例子 |
|---|---|---|
== | 等于 | a == b |
!= | 不等于 | a != b |
> | 大于 | a > b |
< | 小于 | a < b |
>= | 大于等于 | a >= b |
<= | 小于等于 | a <= b |
示例:
#include <stdio.h>
int main() {
int a = 10, b = 5;
printf("a == b: %d\n", a == b); // 0 (false)
printf("a != b: %d\n", a != b); // 1 (true)
printf("a > b: %d\n", a > b); // 1 (true)
printf("a < b: %d\n", a < b); // 0 (false)
return 0;
}
3. 逻辑运算符(Logical Operators)
用于进行布尔值逻辑操作。
| 运算符 | 描述 | 例子 |
|---|---|---|
&& | 逻辑与(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 (false)
printf("a || b: %d\n", a || b); // 1 (true)
printf("!a: %d\n", !a); // 0 (false)
return 0;
}
4. 位运算符(Bitwise Operators)
用于在二进制位级别上执行操作。
| 运算符 | 描述 | 例子 |
|---|---|---|
& | 位与(AND) | a & b |
| | 位或(OR) | a | b |
^ | 位异或(XOR) | a ^ b |
~ | 位非(NOT) | ~a |
<< | 左移 | a << 2 |
>> | 右移 | a >> 2 |
示例:
#include <stdio.h>
int main() {
int a = 5, b = 3;
printf("a & b: %d\n", a & b); // 1
printf("a | b: %d\n", a | b); // 7
printf("a ^ b: %d\n", a ^ b); // 6
printf("~a: %d\n", ~a); // -6 (按位取反)
printf("a << 2: %d\n", a << 2); // 20
printf("a >> 2: %d\n", a >> 2); // 1
return 0;
}
5. 赋值运算符(Assignment Operators)
用于给变量赋值。
| 运算符 | 描述 | 例子 |
|---|---|---|
= | 赋值 | a = b |
+= | 加法赋值 | a += b |
-= | 减法赋值 | a -= b |
*= | 乘法赋值 | a *= b |
/= | 除法赋值 | a /= b |
%= | 取余赋值 | a %= b |
示例:
#include <stdio.h>
int main() {
int a = 5, b = 3;
a += b; // a = a + b
printf("a += b: %d\n", a); // 8
a *= b; // a = a * b
printf("a *= b: %d\n", a); // 24
return 0;
}
6. 自增/自减运算符(Increment/Decrement Operators)
用于对变量进行加1或减1操作。
| 运算符 | 描述 | 例子 |
|---|---|---|
++ | 自增运算符 | a++ |
-- | 自减运算符 | a-- |
示例:
#include <stdio.h>
int main() {
int a = 5;
printf("a++: %d\n", a++); // 5 (先返回再自增)
printf("a: %d\n", a); // 6
printf("++a: %d\n", ++a); // 7 (先自增再返回)
return 0;
}
7. 条件运算符(Conditional (Ternary) Operator)
条件运算符是C语言中的一个三元运算符,它根据条件的真假返回不同的结果。
| 运算符 | 描述 | 例子 |
|---|---|---|
?: | 条件运算符(三元运算符) | condition ? expr1 : expr2 |
示例:
#include <stdio.h>
int main() {
int a = 5, b = 3;
int max = (a > b) ? a : b; // 如果a > b,则返回a,否则返回b
printf("max = %d\n", max); // 5
return 0;
}
8. 逗号运算符(Comma Operator)
用于在一个表达式中执行多个操作,多个操作从左到右依次执行,返回最后一个操作的结果。
| 运算符 | 描述 | 例子 |
|---|---|---|
, | 逗号运算符 | a = (b = 5, b + 2) |
示例:
#include <stdio.h>
int main() {
int a, b;
a = (b = 5, b + 2); // 先给b赋值5,再执行b+2,最后将结果赋给a
printf("a = %d, b = %d\n", a, b); // a = 7, b = 5
return 0;
}
9. 指针运算符(Pointer Operators)
指针运算符用于访问指针和地址相关的操作。
| 运算符 | 描述 | 例子 |
|---|---|---|
& | 地址运算符 | &a |
* | 解引用运算符 | *p |
示例:
#include <stdio.h>
int main() {
int a = 10;
int *p = &a; // p存储a的地址
printf("a = %d\n", *p); // 输出: 10
return 0;
}
10. 类型转换运算符(Type Casting Operator)
用于将一个数据类型转换为另一个数据类型。
| 运算符 | 描述 | 例子 |
|---|---|---|
(type) | 类型转换运算符 | (int)a |
示例:
#include <stdio.h>
int main() {
float a = 3.14;
int b = (int)a; // 强制转换为整数
printf("b = %d\n", b); // 3
return 0;
}
总结
C 语言提供了多种运算符来执行不同类型的操作,运算符的熟练掌握对开发高效、清晰的程序至关重要。更多详细内容请关注其他相关文章!