运算符用于对变量和值执行操作。
在下面的示例中,我们使用+
运算符将两个值相加:
虽然+
运算符经常用于将两个值相加,就像上面的例子一样,它也可以用于将一个变量和一个值相加,或者一个变量和另一个变量相加:
int sum1 = 100 + 50; // 150 (100 + 50)
int sum2 = sum1 + 250; // 400 (150 + 250)
int sum3 = sum2 + sum2; // 800 (400 + 400)
亲自试一试 »
C 将运算符分为以下几组:
算术运算符用于执行常见的数学运算。
Operator | Name | Description | Example | 尝试一下 |
---|---|---|---|---|
+ | Addition | Adds together two values | x + y | 尝试一下 » |
- | Subtraction | Subtracts one value from another | x - y | 尝试一下 » |
* | Multiplication | Multiplies two values | x * y | 尝试一下 » |
/ | Division | Divides one value by another | x / y | 尝试一下 » |
% | Modulus | Returns the division remainder | x % y | 尝试一下 » |
++ | Increment | Increases the value of a variable by 1 | ++x | 尝试一下 » |
-- | Decrement | Decreases the value of a variable by 1 | --x | 尝试一下 » |
赋值运算符用于给变量赋值。
在下面的示例中,我们使用任务运算符 (=
) 来赋值10到一个名为X:
这个加法作业运算符 (+=
) 向变量添加一个值:
所有赋值运算符的列表:
Operator | Example | Same As | 尝试一下 |
---|---|---|---|
= | x = 5 | x = 5 | 尝试一下 » |
+= | x += 3 | x = x + 3 | 尝试一下 » |
-= | x -= 3 | x = x - 3 | 尝试一下 » |
*= | x *= 3 | x = x * 3 | 尝试一下 » |
/= | x /= 3 | x = x / 3 | 尝试一下 » |
%= | x %= 3 | x = x % 3 | 尝试一下 » |
&= | x &= 3 | x = x & 3 | 尝试一下 » |
|= | x |= 3 | x = x | 3 | 尝试一下 » |
^= | x ^= 3 | x = x ^ 3 | 尝试一下 » |
>>= | x >>= 3 | x = x >> 3 | 尝试一下 » |
<<= | x <<= 3 | x = x << 3 | 尝试一下 » |
比较运算符用于比较两个值(或变量)。这在编程中很重要,因为它可以帮助我们找到答案并做出决策。
比较的返回值是1
或者0
, 意思是真的(1
) 或者错误的(0
)。这些值被称为布尔值,您将在以下内容中了解有关它们的更多信息布尔值和If...Else章节。
在下面的示例中,我们使用大于运算符 (>
) 判断 5 是否大于 3:
int x = 5;
int y = 3;
printf("%d", x > y); // returns 1 (true) because 5 is greater than 3
亲自试一试 »
所有比较运算符的列表:
Operator | Name | Example | 尝试一下 |
---|---|---|---|
== | Equal to | x == y | 尝试一下 » |
!= | Not equal | x != y | 尝试一下 » |
> | Greater than | x > y | 尝试一下 » |
< | Less than | x < y | 尝试一下 » |
>= | Greater than or equal to | x >= y | 尝试一下 » |
<= | Less than or equal to | x <= y | 尝试一下 » |
您还可以使用逻辑运算符测试真值或假值。
逻辑运算符用于确定变量或值之间的逻辑:
Operator | Name | Description | Example | 尝试一下 |
---|---|---|---|---|
&& | Logical and | Returns true if both statements are true | x < 5 && x < 10 | 尝试一下 » |
|| | Logical or | Returns true if one of the statements is true | x < 5 || x < 4 | 尝试一下 » |
! | Logical not | Reverse the result, returns false if the result is true | !(x < 5 && x < 10) | 尝试一下 » |
数据类型或变量的内存大小(以字节为单位)可以通过以下命令找到sizeof
运算符:
int myInt;
float myFloat;
double myDouble;
char myChar;
printf("%lu\n", sizeof(myInt));
printf("%lu\n", sizeof(myFloat));
printf("%lu\n", sizeof(myDouble));
printf("%lu\n", sizeof(myChar));
亲自试一试 »
请注意,我们使用%lu
格式说明符打印结果,而不是%d
。这是因为编译器期望 sizeof 运算符返回一个long unsigned int
(%lu
), 代替int
(%d
)。在某些计算机上它可能适用于%d
,但使用起来更安全%lu
。