C 编程运算符
C 编程运算符
在本教程中,您将通过示例了解 C 编程中的不同运算符。
视频:C 中的算术运算符
运算符是对值或变量进行操作的符号。例如:+ 是执行加法的算子。
C 有广泛的运算符来执行各种操作。
C 算术运算符
算术运算符对数值(常量和变量)进行加、减、乘、除等数学运算。
运算符 | 运算符的含义 |
---|---|
+ | 加法或一元加法 |
- | 减法或一元减法 |
* | 乘法 |
/ | 部门 |
% | 除法后的余数(模除法) |
示例 1:算术运算符
// Working of arithmetic operators
#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("Remainder when a divided by b = %d \n",c);
return 0;
}
输出
a+b = 13 a-b = 5 a*b = 36 a/b = 2 Remainder when a divided by b=1
运算符 +
, -
和 *
如您所料,分别计算加法、减法和乘法。
正常计算时,9/4 = 2.25
.但是,输出是 2
在程序中。
这是因为两个变量 a 和 b 是整数。因此,输出也是一个整数。编译器忽略小数点后的项并显示答案 2
而不是 2.25
.
模运算符 %
计算余数。当a=9
除以 b=4
,余数为 1
. %
运算符只能与整数一起使用。
假设 a = 5.0
, b = 2.0
, c = 5
和 d = 2
.那么在C编程中,
// Either one of the operands is a floating-point number a/b = 2.5 a/d = 2.5 c/b = 2.5 // Both operands are integers c/d = 2
C 递增和递减运算符
C编程有两个运算符递增++
并递减 --
将操作数(常量或变量)的值更改 1。
递增 ++
将值增加 1 而减少 --
将值减 1。这两个运算符是一元运算符,这意味着它们只对单个操作数进行操作。
示例 2:递增和递减运算符
// Working of increment and decrement operators
#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 =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 |
示例 3:赋值运算符
// Working of assignment operators
#include <stdio.h>
int main()
{
int a = 5, c;
c = a; // c is 5
printf("c = %d\n", c);
c += a; // c is 10
printf("c = %d\n", c);
c -= a; // c is 5
printf("c = %d\n", c);
c *= a; // c is 25
printf("c = %d\n", c);
c /= a; // c is 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。
关系运算符用于决策和循环。
运算符 | 运算符的含义 | 示例 |
---|---|---|
== | 等于 | 5 == 3 被评估为 0 |
> | 大于 | 5 > 3 被评估为 1 |
< | 小于 | 5 < 3 被评估为 0 |
!= | 不等于 | 5 != 3 被评估为 1 |
>= | 大于等于 | 5 >= 3 被评估为 1 |
<= | 小于或等于 | 5 <= 3 被评估为 0 |
示例 4:关系运算符
// Working of relational operators
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10;
printf("%d == %d is %d \n", a, b, a == b);
printf("%d == %d is %d \n", a, c, a == c);
printf("%d > %d is %d \n", a, b, a > b);
printf("%d > %d is %d \n", a, c, a > c);
printf("%d < %d is %d \n", a, b, a < b);
printf("%d < %d is %d \n", a, c, a < c);
printf("%d != %d is %d \n", a, b, a != b);
printf("%d != %d is %d \n", a, c, a != c);
printf("%d >= %d is %d \n", a, b, a >= b);
printf("%d >= %d is %d \n", a, c, a >= c);
printf("%d <= %d is %d \n", a, b, a <= b);
printf("%d <= %d is %d \n", a, c, a <= c);
return 0;
}
输出
5 == 5 is 1 5 == 10 is 0 5 > 5 is 0 5 > 10 is 0 5 < 5 is 0 5 < 10 is 1 5 != 5 is 0 5 != 10 is 1 5 >= 5 is 1 5 >= 10 is 0 5 <= 5 is 1 5 <= 10 is 1
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:逻辑运算符
// Working of logical operators
#include <stdio.h>
int main()
{
int a = 5, b = 5, c = 10, result;
result = (a == b) && (c > b);
printf("(a == b) && (c > b) is %d \n", result);
result = (a == b) && (c < b);
printf("(a == b) && (c < b) is %d \n", result);
result = (a == b) || (c < b);
printf("(a == b) || (c < b) is %d \n", result);
result = (a != b) || (c < b);
printf("(a != b) || (c < b) is %d \n", result);
result = !(a != b);
printf("!(a != b) is %d \n", result);
result = !(a == b);
printf("!(a == b) is %d \n", result);
return 0;
}
输出
(a == b) && (c > b) is 1 (a == b) && (c < b) is 0 (a == b) || (c < b) is 1 (a != b) || (c < b) is 0 !(a != b) is 1 !(a == b) is 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
三元运算符?:
等其他运算符 , 引用运算符 &
, 解引用运算符 *
和成员选择运算符 ->
后面的教程会讲到。
C语言