三、运算符
运算符类型 作用 算术运算符 用于处理s四则运算 赋值运算符 用于将表达式的值赋值给变量 比较运算符 用于表达式的比较,并返回一个真值或假值 逻辑运算符 用于根据表达式的值返回真值或假值
运算符 术语 示例 结果 + 正号 +3 3 - 负号 -3 -3 + 加 10 + 5 15 - 减 10 - 5 5 * 乘 10 * 5 50 / 除 10 / 5 2 % 取模(取余) 10 % 3 1 ++ 前置递增 a=2; b=++a; a=3; b=3; ++ 后置递增 a=2; b=a++; a=3; b=2; -- 前置递减 a=2; b=--a; a=1; b=1; -- 后置递减 a=2; b=a--; a=1; b=2;
#include<stdio.h> int main() { int a = 3; int b = 4; // 加减乘除 printf("a + b = %d\n", a+b); printf("a - b = %d\n", a-b); printf("a * b = %d\n", a*b); printf("a / b = %d\n", a/b); printf("a % b = %d\n", a%b); // 输出 a b = 3 printf("a %% b = %d\n", a%b); // 两个百分号用于输出一个% // 自加自减 int c = b++; int d = ++b; printf("b = %d\n", b); // 6 printf("c = %d\n", c); // 4 printf("d = %d\n", d); // 6 printf("c = %d\n", c++); // 4 printf("d = %d\n", ++d); // 7 int e = d++ * 7; printf("e = %d\n", e); // 49 printf("d = %d\n", d); // 8 int f = ++d * 8; printf("f = %d\n", f); // 72 printf("d = %d\n", d); // 9 return 0; }
1.2 自加自减运算符
用自加(减)后的值参与运算
变量本身自加(减)
常量不能自加(减),自加(减)的本意就是变量的值改变
用自加(减)前的值参与运算
变量本身自加(减)
运算符 术语 示例 结果 = 赋值 a=2; b=3; a=2; b=3; += 加等于 a=0; a+=2; a=2; -= 减等于 a=5; a-=3; a=2; *= 乘等于 a=2; a*=2; a=4; /= 除等于 a=4; a/=2; a=2; %= 模等于 a=3; a%2; a=1; #include<stdio.h> int main() { int a = 3; int b = 4; a += a; printf("a = %d\n", a); // 6 a += b; printf("a = %d\n", a); // 10 a -= b; printf("a = %d\n", a); // 6 a *= b; printf("a = %d\n", a); // 24 a /= b; printf("a = %d\n", a); // 6 a %= b; printf("a = %d\n", a); // 2 return 0; }
运算符 术语 示例 结果 == 相等于 4 == 3 0 != 不等于 4 != 3 1 < 小于 4 < 3 0 > 大于 4 > 3 1 <= 小于等于 4 <= 3 0 >= 大于等于 4 >= 1 1 #include<stdio.h> int main() { int a = 3; int b = 4; // C和比较运算中, 真用数字 1 来表示, 假 用数字 0 来表示。 printf("a == b is: %d\n", a==b); // 0 printf("a >= b is: %d\n", a>=b); // 0 printf("a < b is: %d\n", a<b); // 1 printf("a != b is: %d\n", a!=b); // 1 return 0; }
运算符 术语 示例 结果 ! 非 !a 如果a为假,则!a为真; 如果a为真,则!a为假。 && 与 a && b 如果a和b都为真,则结果为真,否则为假。 || 或 a || b 如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 用于根据表达式的值返回真值或假值
#include<stdio.h> int main() { int a = 3; int b = 4; int c = 0; printf("!a = %d\n", !a); // 0 printf("a&&b = %d\n", a&&b);// 1 printf("a&&c = %d\n", a&&c);// 0 printf("a||b = %d\n", a||b);// 1 printf("a||c = %d\n", a||c);// 1 return 0; }