C语言提供了丰富的操作符来执行各种操作,包括算术运算、逻辑运算、位运算、比较、赋值等。
以下是C语言中常见的操作符分类和介绍:
1. 算术操作符
+
加法-
减法*
乘法/
除法%
模运算(取余数)++
递增(自增1)--
递减(自减1)
int a = 1;
// a使用后+1; b = 1; a = 2;
int b = a++;
//a 使用前+1; c=3; a=3;
int c = ++a;
2. 赋值操作符
=
简单赋值+=
加后赋值-=
减后赋值*=
乘后赋值/=
除后赋值%=
模后赋值
3. 比较操作符
==
等于!=
不等于>
大于<
小于>=
大于等于<=
小于等于
4. 逻辑操作符
&&
逻辑与(AND)||
逻辑或(OR)!
逻辑非(NOT)
5. 位操作符
&
位与|
位或^
位异或(XOR)~
位取反(NOT)<<
左移位>>
右移位
6. 条件操作符(三元操作符)
? :
条件表达式,格式为condition ? expression1 : expression2
int a = 15;
// 如果a>10, b=10; 否则 b=0;
int b = a > 10 ? 10 : 0;
7. 逗号操作符
,
用于分隔表达式,如循环中的多个表达式
8. 指针操作符
&
取地址*
解引用
9. 地址和间接寻址操作符
&
地址操作符,返回变量的内存地址*
间接寻址操作符,通过地址访问变量
10. 其他操作符
sizeof
操作符,返回变量或类型的大小(以字节为单位).
成员访问操作符,用于访问结构体或联合体的成员->
用于通过指针访问成员
11. 范围操作符
[]
用于数组元素的访问
12. 强制类型转换操作符
(type)
将括号内的表达式强制转换为指定类型
double a = 3.14;
int b =(double)a;
13. Demo
#include <stdio.h>
int main() {
int a = 10, b = 20;
int sum = a + b; // 算术操作符
int difference = a - b; // 算术操作符
a += 5; // 赋值操作符(加后赋值)
b *= 2; // 赋值操作符(乘后赋值)
int is_equal = (a != b); // 比较操作符
int max = (a > b) ? a : b; // 条件操作符
int bitwise_and = a & b; // 位操作符(位与)
int bitwise_or = a | b; // 位操作符(位或)
return 0;
}
14. 位操作详细介绍
在系统中定义经常会看到定义值是有规律的 1 2 4 8 16 32,是为了方便进行位运算。
(1)位掩码用于快速访问或修改特定的位或位段。
int flags = 0;
flags |= 1 << 2; // 设置第3位(从0开始计数)
if (flags & (1 << 2)) {
// 检查第3位是否为1
}
(2)使用位操作符快速计算一个整数中设置为1的位数。
int countBits(int number) {
int count = 0;
while (number) {
count += number & 1;
number >>= 1;
}
return count;
}
(3)使用左移(<<
)和右移(>>
)操作符来实现快速乘以或除以2的幂次方。
int multiplyByTwo(int x) {
return x << 1; // x * 2
}
int divideByTwo(int x) {
return x >> 1; // x / 2
}