在 C 语言中,"operate" 这个词通常不是一个单独的函数或关键字,而是指 操作 这个概念,它涵盖了非常广泛的内容,主要包括:

(图片来源网络,侵删)
- 运算符:用于执行各种操作的符号。
- 函数调用:通过调用函数来执行特定的操作。
- 位操作:直接对数据的二进制位进行操作。
下面我将分点详细解释这些内容。
运算符
运算符是 C 语言中最基本的“操作”工具,它们告诉编译器要对一个或多个操作数执行何种运算。
C 语言的运算符可以分为以下几大类:
a. 算术运算符
用于执行基本的数学运算。

(图片来源网络,侵删)
| 运算符 | 名称 | 示例 | 结果 (a=10, b=4) |
|---|---|---|---|
| 加 | a + b |
14 | |
| 减 | a - b |
6 | |
| 乘 | a * b |
40 | |
| 除 | a / b |
2 | |
| 取模(求余) | a % b |
2 |
特别注意:
- 运算符如果两个操作数都是整数,则执行整数除法,结果会截断小数部分。
- 运算符要求两个操作数都必须是整数。
int a = 5, b = 2; int result_int = a / b; // result_int 的值是 2 float result_float = (float)a / b; // result_float 的值是 2.5
b. 关系运算符
用于比较两个值,结果为 1 (真) 或 0 (假)。
| 运算符 | 名称 | 示例 | 结果 (a=10, b=20) |
|---|---|---|---|
| 等于 | a == b |
0 | |
| 不等于 | a != b |
1 | |
> |
大于 | a > b |
0 |
< |
小于 | a < b |
1 |
>= |
大于或等于 | a >= b |
0 |
<= |
小于或等于 | a <= b |
1 |
特别注意:
- 区分 (等于) 和 (赋值),这是初学者最容易犯的错误之一。
if (a == 5):判断a是否等于 5。if (a = 5):将5赋值给a,然后判断赋值后的值(非零,为真),这个逻辑通常不是你想要的。
c. 逻辑运算符
用于连接多个关系表达式,常用于 if、while 等控制结构。

(图片来源网络,侵删)
| 运算符 | 名称 | 示例 | 描述 |
|---|---|---|---|
&& |
与 | (a > 0) && (b < 10) |
两个条件都为真时,结果才为真。 |
| 或 | (a > 0) \|\| (b < 10) |
只要有一个条件为真,结果就为真。 | |
| 非 | !(a > 0) |
对条件取反。a > 0 为真,则 !(a > 0) 为假。 |
短路求值:
- 对于
&&,如果第一个表达式为假,第二个表达式将不会被求值。 - 对于 ,如果第一个表达式为真,第二个表达式将不会被求值。
d. 赋值运算符
用于给变量赋值。
| 运算符 | 示例 | 等价于 |
|---|---|---|
a = b |
a = b |
|
a += b |
a = a + b |
|
a -= b |
a = a - b |
|
a *= b |
a = a * b |
|
a /= b |
a = a / b |
|
a %= b |
a = a % b |
这些复合赋值运算符可以使代码更简洁。
e. 位运算符
直接对整数的二进制位进行操作,效率很高,常用于底层编程和性能优化。
| 运算符 | 名称 | 描述 | 示例 (a=5 (0101), b=3 (0011)) |
|---|---|---|---|
& |
按位与 | 两个位都为 1 时,结果的位为 1。 | a & b -> 0001 (1) |
| 按位或 | 只要有一个位为 1,结果的位就为 1。 | a | b -> 0111 (7) |
|
^ |
按位异或 | 两个位不同时,结果的位为 1。 | a ^ b -> 0110 (6) |
| 按位取反 | 将所有的位取反 (0变1, 1变0)。 | ~a -> ...1010 (取决于int长度) |
|
<< |
左移 | 将所有位向左移动指定的位数,右边补0。 | a << 1 -> 1010 (10) |
>> |
右移 | 将所有位向右移动指定的位数,左边补符号位(算术右移)。 | a >> 1 -> 0010 (2) |
f. 其他重要运算符
-
sizeof:不是一个函数,而是一个运算符,用于返回一个变量或数据类型在内存中所占的字节数。int a; printf("Size of int: %zu bytes\n", sizeof(int)); // 输出通常为 4 printf("Size of a: %zu bytes\n", sizeof(a)); // 输出通常为 4 -
(条件运算符):C 语言中唯一一个三目运算符,是
if-else语句的简洁形式。表达式1 ? 表达式2 : 表达式3表达式1为真,则整个表达式的值为表达式2的值;否则为表达式3的值。int a = 10, b = 20; int max = (a > b) ? a : b; // max 的值是 20
-
*
&(取地址符) 和 `` (解引用/间接寻址符)**:&:获取一个变量的内存地址。- 访问一个指针所指向地址的值。
int var = 10; int *ptr = &var; // ptr 存储了 var 的地址 printf("Value of var: %d\n", var); // 输出 10 printf("Value of *ptr: %d\n", *ptr); // 输出 10
函数调用
函数是 C 语言中组织代码、实现特定功能的“操作”单元,通过调用函数,你可以执行一系列预定义的操作。
函数调用的语法:
函数名(参数1, 参数2, ...);
示例:
C 标准库提供了大量函数,printf 用于打印,scanf 用于输入。
#include <stdio.h>
// 这是一个我们自己定义的函数,用于计算两个数的和
int add(int x, int y) {
return x + y;
}
int main() {
int num1 = 5, num2 = 7;
int sum;
// 调用 add 函数,执行加法操作
sum = add(num1, num2);
// 调用 printf 函数,执行打印操作
printf("The sum is: %d\n", sum);
return 0;
}
位操作
位操作是更底层的“操作”,它直接处理数据在内存中的二进制形式,虽然它属于运算符的一部分,但由于其重要性和特殊性,单独列出。
- 设置位:将某一位设置为 1。
flags |= (1 << 2);// 将第 2 位设置为 1 - 清除位:将某一位设置为 0。
flags &= ~(1 << 2);// 将第 2 位设置为 0 - 切换位:将某一位取反(0变1,1变0)。
flags ^= (1 << 2);// 切换第 2 位的状态 - 检查位:检查某一位是否为 1。
if (flags & (1 << 2)) { /* 如果第 2 位是 1,则执行这里的代码 */ }
当你在 C 语言中谈论 "operate" 时,你实际上是在谈论 如何对数据进行处理和计算,这主要通过以下方式实现:
- 使用运算符:这是最直接、最高效的方式,用于完成算术、逻辑、比较等基本操作。
- 调用函数:当你需要执行一个复杂的、预先定义好的操作序列时,使用函数是最好的选择,它让代码模块化、可重用。
- 进行位操作:在需要高性能或直接与硬件交互的场景下,使用位运算符进行底层操作。
理解并熟练运用这些操作是掌握 C 语言的核心。
