C 语言运算符

运算符

运算符用于对变量和值执行操作。在下面的实例中,我们使用 + 运算符 将两个值相加:

实例
  1. #include <stdio.h>
  2. int main() {
  3. int myNum = 100 + 50;
  4. printf("%d", myNum);
  5. return 0;
  6. }

虽然 + 运算符通常用于将两个值相加,如上面的实例中所示,但它也可用于将变量和值相加,或将变量和另一个变量相加:

实例
  1. #include <stdio.h>
  2. int main() {
  3. int sum1 = 100 + 50; // 150 (100 + 50)
  4. int sum2 = sum1 + 250; // 400 (150 + 250)
  5. int sum3 = sum2 + sum2; // 800 (400 + 400)
  6. printf("%d\n", sum1);
  7. printf("%d\n", sum2);
  8. printf("%d\n", sum3);
  9. return 0;
  10. }

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

  • 算术运算符
  • 赋值运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

算术运算符

算术运算符用于执行常见的数学运算。

运算符名称描述实例试一试
+将两个值相加x + y试一试 »
-用一个值减去另一个值x - y试一试 »
*将两个值相乘x * y试一试 »
/将一个值除以另一个rx / y试一试 »
%返回除法余数x % y试一试 »
++自增将变量的值增加 1++x试一试 »
Decrement将变量的值减少 1—x试一试 »

赋值运算符

赋值运算符用于为变量赋值。

在下面的实例中,我们使用赋值运算符(=)将值 10 赋值给一个名为 x 的变量:

实例
  1. #include <stdio.h>
  2. int main() {
  3. int x = 10;
  4. printf("%d", x);
  5. return 0;
  6. }

加法赋值运算符(+=)向变量添加一个值:

实例
  1. #include <stdio.h>
  2. int main() {
  3. int x = 10;
  4. x += 5;
  5. printf("%d", x);
  6. return 0;
  7. }

所有赋值运算符的列表:

运算符实例相当于试一试
=x = 5x = 5试一试 »
+=x += 3x = x + 3试一试 »
-=x -= 3x = x - 3试一试 »
*=x *= 3x = x * 3试一试 »
/=x /= 3x = x / 3试一试 »
%=x %= 3x = x % 3试一试 »
&=x &= 3x = x & 3试一试 »
|=x |= 3x = x | 3试一试 »
^=x ^= 3x = x ^ 3试一试 »
>>=x >>= 3x = x >> 3试一试 »
<<=x <<= 3x = x << 3试一试 »

比较运算符

比较运算符用于比较两个值。

注意:比较的返回值为 true(1)或 false(0)。

在下面的实例中,我们使用 大于 运算符(>)来确定 5 是否大于 3:

实例
  1. #include <stdio.h>
  2. int main() {
  3. int x = 5;
  4. int y = 3;
  5. printf("%d", x > y); // returns 1 (true) because 5 is greater than 3
  6. return 0;
  7. }

所有比较运算符的列表:

运算符名称实例试一试
==等于x == y试一试 »
!=不等于x != y试一试 »
>大于x > y试一试 »
<小于x < y试一试 »
>=大于等于x >= y试一试 »
<=小于等于x <= y试一试 »

逻辑运算符

逻辑运算符用于确定变量或值之间的逻辑:

运算符名称描述实例试一试
&& 逻辑与如果两条语句都为 true,则返回 truex < 5 &&  x < 10试一试 »
|| 逻辑或如果其中一个语句为 true,则返回 truex < 5 || x < 4试一试 »
!Logical not反转结果,如果结果为 true,则返回 false!(x < 5 && x < 10)试一试 »

Sizeof 运算符

数据类型或变量的内存大小(字节)可以通过 sizeof 运算符查到:

实例
  1. #include <stdio.h>
  2. int main() {
  3. int myInt;
  4. float myFloat;
  5. double myDouble;
  6. char myChar;
  7. printf("%lu\n", sizeof(myInt));
  8. printf("%lu\n", sizeof(myFloat));
  9. printf("%lu\n", sizeof(myDouble));
  10. printf("%lu\n", sizeof(myChar));
  11. return 0;
  12. }

注意,我们使用 %lu 格式说明符来打印结果,而不是 %d。这是因为编译器希望 sizeof 运算符返回长的无符号整数(%lu),而不是整数(%d)。在某些计算机上,它可能与 %d 一起工作,但使用 %lu 更安全。