跳到主要内容

C 语言编程运算符

提示
  1. 算术运算符:C语言中的算术运算符包括加法(+)、减法(-)、乘法(*)、除法(/)和取余(%),用于执行数值运算。
  2. 递增和递减运算符:递增运算符(++)和递减运算符(--)用于将操作数(变量或常量)的值加1或减1,可以作为前缀或后缀使用。
  3. 赋值、关系和逻辑运算符:赋值运算符(如=, +=, -=)用于给变量赋值;关系运算符(如==, >, <)用于比较两个值;逻辑运算符(如&&, ||, !)用于进行布尔逻辑运算。

运算符是对一个值或变量进行操作的符号。例如:+是用于执行加法的运算符。

C语言有各种运算符来执行多种操作。

C算术运算符

算术运算符执行诸如加法、减法、乘法、除法等数学运算在数值(常量和变量)上。

运算符运算符含义
+加法或一元加
-减法或一元减
*乘法
/除法
%除法后的余数(模运算)

示例1:算术运算符

// 算术运算符的工作原理
#include <stdio.h>
int main()
{
int a = 9, b = 4, c;

c = a+b;
printf("a+b = %d \n", c);
c = a-b;
printf("a-b = %d \n", c);
c = a*b;
printf("a*b = %d \n", c);
c = a/b;
printf("a/b = %d \n", c);
c = a%b;
printf("a除以b的余数 = %d \n", c);

return 0;
}

输出

a+b = 13
a-b = 5
a*b = 36
a/b = 2
a除以b的余数=1

运算符+-*分别计算加法、减法和乘法,就像您可能预期的那样。

在正常计算中,9/4 = 2.25。然而,程序中的输出是2

这是因为变量a和b都是整数。因此,输出也是整数。编译器忽略了小数点后的部分,显示答案2而不是2.25

模运算符%计算余数。当a=9除以b=4时,余数是1%运算符只能用于整数。

假设a = 5.0b = 2.0c = 5d = 2。那么在C编程中,

// 其中一个操作数是浮点数
a/b = 2.5
a/d = 2.5
c/b = 2.5

// 两个操作数都是整数
c/d = 2

C增量和减量运算符

C编程有两个运算符增量++和减量--,用于将操作数(常量或变量)的值增加或减少1。

增量++将值增加1,而减量--将值减少1。这两个运算符是一元运算符,意味着它们只对单个操作数操作。

示例2:增量和减量运算符

// 增量和减量运算符的工作原理
#include <stdio.h>
int main()
{
int a = 10, b = 100;
float c = 10.5, d = 100.5;

printf("++a = %d \n", ++a);
printf("--b = %d \n", --b);
printf("++c = %f \n", ++c);
printf("--d = %f \n", --d);

return 0;
}

输出

++a = 11
--b = 99
++c = 11.500000
--d = 99.500000

这里,操作符++--被用作前缀。这两个操作符也可以像a++a--这样作为后缀使用。

C语言赋值操作符

赋值操作符用于将值赋给变量。最常见的赋值操作符是=

操作符示例等同于
=a = ba = b
+=a += ba = a+b
-=a -= ba = a-b
*=a *= ba = a*b
/=a /= ba = a/b
%=a %= ba = a%b

示例 3:赋值操作符

// 赋值操作符的工作原理
#include <stdio.h>
int main()
{
int a = 5, c;

c = a; // c为5
printf("c = %d\n", c);
c += a; // c为10
printf("c = %d\n", c);
c -= a; // c为5
printf("c = %d\n", c);
c *= a; // c为25
printf("c = %d\n", c);
c /= a; // c为5
printf("c = %d\n", c);
c %= a; // c为0
printf("c = %d\n", c);

return 0;
}

输出

c = 5
c = 10
c = 5
c = 25
c = 5
c = 0

C语言关系操作符

关系操作符检查两个操作数之间的关系。如果关系为真,它返回1;如果关系为假,它返回0。

关系操作符在C语言决策制作循环中使用。

操作符操作符的含义示例
==等于5 == 3 的结果为 0
>大于5 > 3 的结果为 1
<小于5 < 3 的结果为 0
!=不等于5 != 3 的结果为 1
>=大于等于5 >= 3 的结果为 1
<=小于等于5 <= 3 的结果为 0

示例 4:关系操作符

// 关系操作符的工作原理
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10;

printf("%d == %d 是 %d \n", a, b, a == b);
printf("%d == %d 是 %d \n", a, c, a == c);
printf("%d > %d 是 %d \n", a, b, a > b);
printf("%d > %d 是 %d \n", a, c, a > c);
printf("%d < %d 是 %d \n", a, b, a < b);
printf("%d < %d 是 %d \n", a, c, a < c);
printf("%d != %d 是 %d \n", a, b, a != b);
printf("%d != %d 是 %d \n", a, c, a != c);
printf("%d >= %d 是 %d \n", a, b, a >= b);
printf("%d >= %d 是 %d \n", a, c, a >= c);
printf("%d <= %d 是 %d \n", a, b, a <= b);
printf("%d <= %d 是 %d \n", a, c, a <= c);

return 0;
}

输出

5 == 51
5 == 100
5 > 50
5 > 100
5 < 50
5 < 101
5 != 50
5 !=

101
5 >= 51
5 >= 100
5 <= 51
5 <= 101

C语言逻辑操作符

包含逻辑操作符的表达式根据表达式结果为真或假返回0或1。逻辑操作符通常用于C编程中的决策制作

| 操作符 | 含义 | 示例 | | ------ | ------------------------------ | ------------------------------------------------------ | --- | ------------------ | | && | 逻辑与。当所有操作数为真时为真 | 若c = 5且d = 2,则表达式((c==5) && (d>5))的结果为0。 | | || | 逻辑或。当任一操作数为真时为真 | 若c = 5且d = 2,则表达式((c==5) | | (d>5))的结果为1。 | | ! | 逻辑非。当操作数为0时为真 | 若c = 5,则表达式!(c==5)的结果为0。 |

示例 5:逻辑操作符

// 逻辑操作符的工作原理
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10, result;

result = (a == b) && (c > b);
printf("(a == b) && (c > b) 是 %d \n", result);

result = (a == b) && (c < b);
printf("(a == b) && (c < b) 是 %d \n", result);

result = (a == b) || (c < b);
printf("(a == b) || (c < b) 是 %d \n", result);

result = (a != b) || (c < b);
printf("(a != b) || (c < b) 是 %d \n", result);

result = !(a != b);
printf("!(a != b) 是 %d \n", result);

result = !(a == b);
printf("!(a == b) 是 %d \n", result);

return 0;
}

输出

(a == b) && (c > b)1
(a == b) && (c < b)0
(a == b) || (c < b)1
(a != b) || (c < b)0
!(a != b)1
!(a == b)0

逻辑操作符程序的解释

  • (a == b) && (c > 5)的结果为1,因为两个操作数(a == b)(c > b)都是1(真)。
  • (a == b) && (c < b)的结果为0,因为操作数(c < b)是0(假)。
  • (a == b) || (c < b)的结果为1,因为(a = b)是1(真)。
  • (a != b) || (c < b)的结果为0,因为两个操作数(a != b)(c < b)都是0(假)。
  • !(a != b)的结果为1,因为操作数(a != b)是0(假)。因此,!(a != b)是1(真)。
  • !(a == b)的结果为0,因为(a == b)是1(真)。因此,!(a == b)是0(假)。

C语言位操作符

在计算过程中,像加法、减法、乘法、除法等数学运算会被转换为位级运算,这样可以加快处理速度并节省能源。

位操作符用于C语言中进行位级运算。

操作符操作符的含义
&位与
|位或
^位异或
~位取反
<<左移
>>右移

访问C语言中的位操作符。

其他操作符

逗号运算符

逗号运算符用于将相关表达式连接在一起。例如:

int a, c = 5, d;

sizeof 运算符

sizeof 是一个一元运算符,用于返回数据(常量、变量、数组、结构体等)的大小。

示例 6:sizeof 运算符

#include <stdio.h>
int main()
{
int a;
float b;
double c;
char d;
printf("Size of int=%lu bytes\n",sizeof(a));
printf("Size of float=%lu bytes\n",sizeof(b));
printf("Size of double=%lu bytes\n",sizeof(c));
printf("Size of char=%lu byte\n",sizeof(d));

return 0;
}

输出

Size of int = 4 bytes
Size of float = 4 bytes
Size of double = 8 bytes
Size of char = 1 byte

其他运算符如三元运算符 ?:、引用运算符 &、解引用运算符 * 和成员选择运算符 -> 将在后续教程中讨论。