算术运算符
C语言支持多种算术运算符,包括加法、减法、乘法、除法和取模运算。这些运算符可以用于整型和浮点数。
加法运算符 (+)
加法运算符用于将两个操作数相加。
int a = 10; int b = 20; int c = a + b; // c 的值为 30
减法运算符 (-)
减法运算符用于从一个操作数中减去另一个操作数。
int a = 20; int b = 10; int c = a - b; // c 的值为 10
乘法运算符 (*)
乘法运算符用于将两个操作数相乘。
int a = 10; int b = 20; int c = a * b; // c 的值为 200
除法运算符 (/)
除法运算符用于将一个操作数除以另一个操作数。对于整数除法,结果是整数部分的商。
int a = 20; int b = 10; int c = a / b; // c 的值为 2
对于浮点数除法,结果是一个浮点数。
float a = 20.0f; float b = 10.0f; float c = a / b; // c 的值为 2.0
取模运算符 (%)
取模运算符用于返回两个操作数相除后的余数。
int a = 20; int b = 10; int c = a % b; // c 的值为 0
int a = 25; int b = 7; int c = a % b; // c 的值为 4
赋值运算符
赋值运算符用于给变量赋值。最常用的赋值运算符是等号 (=)。
简单赋值运算符 (=)
int a = 10;
复合赋值运算符
复合赋值运算符是将算术运算符与赋值运算符结合在一起使用。
加法赋值运算符 (+=)
int a = 10; a += 20; // 相当于 a = a + 20; a 的值为 30
减法赋值运算符 (-=)
int a = 20; a -= 10; // 相当于 a = a - 10; a 的值为 10
乘法赋值运算符 (*=)
int a = 10; a *= 2; // 相当于 a = a * 2; a 的值为 20
除法赋值运算符 (/=)
int a = 20; a /= 2; // 相当于 a = a / 2; a 的值为 10
取模赋值运算符 (%=)
int a = 25; a %= 7; // 相当于 a = a % 7; a 的值为 4
位运算符
位运算符用于对整数在二进制下的每一位进行操作。
按位与 (&)
int a = 5; // 二进制表示为 0101 int b = 3; // 二进制表示为 0011 int c = a & b; // 结果为 0001,即十进制的 1
按位或 (|)
int a = 5; // 二进制表示为 0101 int b = 3; // 二进制表示为 0011 int c = a | b; // 结果为 0111,即十进制的 7
按位异或 (^)
int a = 5; // 二进制表示为 0101 int b = 3; // 二进制表示为 0011 int c = a ^ b; // 结果为 0110,即十进制的 6
按位非 (~)
int a = 5; // 二进制表示为 0101 int c = ~a; // 结果为 1010,即十进制的 -6
左移运算符 (<<)
左移运算符将操作数的二进制位向左移动指定的位数。
int a = 5; // 二进制表示为 0101 int c = a << 1; // 结果为 1010,即十进制的 10
右移运算符 (>>)
右移运算符将操作数的二进制位向右移动指定的位数。
int a = 10; // 二进制表示为 1010 int c = a >> 1; // 结果为 0101,即十进制的 5
关系运算符
关系运算符用于比较两个操作数,并返回一个布尔值。
等于运算符 (==)
int a = 5; int b = 5; int c = a == b; // c 的值为 1 (真)
不等于运算符 (!=)
int a = 5; int b = 6; int c = a != b; // c 的值为 1 (真)
大于运算符 (>)
int a = 5; int b = 3; int c = a > b; // c 的值为 1 (真)
小于运算符 (<)
int a = 5; int b = 3; int c = a < b; // c 的值为 0 (假)
大于等于运算符 (>=)
int a = 5; int b = 5; int c = a >= b; // c 的值为 1 (真)
小于等于运算符 (<=)
int a = 5; int b = 5; int c = a <= b; // c 的值为 1 (真)
逻辑运算符
逻辑运算符用于执行布尔逻辑运算。
逻辑与 (&&)
逻辑与运算符要求两个操作数都为真时,结果才为真。
int a = 5; int b = 10; int c = (a > 0) && (b > 0); // c 的值为 1 (真)
逻辑或 (||)
逻辑或运算符只要有一个操作数为真,结果就为真。
int a = 5; int b = 10; int c = (a > 0) || (b < 0); // c 的值为 1 (真)
逻辑非 (!)
逻辑非运算符用于反转一个布尔值。
int a = 5; int c = !(a > 0); // c 的值为 0 (假)
条件运算符
条件运算符也称为三目运算符,它是一个简洁的 if-else 语句。
int a = 10; int b = 20; int c = (a > b) ? a : b; // c 的值为 20
逗号运算符
逗号运算符允许你在一个表达式中执行多个操作。
int a = 1, b = 2, c = 3; int d = (a++, b++, c++); // d 的值为 3,此时 a=2, b=3, c=4
自增自减运算符
自增和自减运算符用于增加或减少变量的值。
自增运算符 (++)
int a = 5; a++; // a 的值变为 6
自减运算符 (--)
int a = 5; a--; // a 的值变为 4
后缀自增运算符 (a++)
后缀自增运算符先返回当前值,然后再递增。
int a = 5; int b = a++; // b 的值为 5,a 的值变为 6
前缀自增运算符 (++a)
前缀自增运算符先递增,然后再返回新值。
int a = 5; int b = ++a; // b 的值为 6,a 的值也为 6
以上是C语言中的运算符详解,涵盖了算术运算符、赋值运算符、位运算符、关系运算符、逻辑运算符、条件运算符、逗号运算符以及自增自减运算符。这些运算符是编程中非常重要的基础概念,熟练掌握它们能够帮助你更高效地编写代码。