💬 欢迎讨论:学习过程中若有任何疑问或见解,欢迎在评论区留言交流。 👍 点赞、收藏与分享:如果这篇文章对你有帮助,别忘了点赞、收藏并分享给更多伙伴!你们的支持是我持续创作的动力! 🚀 分享给更多人:若你觉得本文有价值,欢迎转发给对C语言感兴趣的朋友,一起在编程的世界里进步!
操作符又称运算符,只是翻译不同,含义完全一致。根据操作数的数量,操作符可分为单目操作符(需1个操作数)、双目操作符(需2个操作数)和三目操作符(需3个操作数)。
C语言为方便数值运算提供了算术操作符,包括+、-、*、/、%,均为双目操作符。
+、-、*的运算规则与数学中的加法、减法、乘法完全一致。
/(除法):
#include <stdio.h>
int main() {
float x = 6 / 4; // 6和4都是整数,结果为1
int y = 6 / 4; // 结果为1
printf("%f\n", x); // 输出1.000000
printf("%d\n", y); // 输出1
return 0;
}
3/2=1,(-3)/(-2)=1)。-3/2=-1)。%(取模/求余):
#include <stdio.h>
int main() {
printf("%d\n", 11 % -5); // 1(与11同号)
printf("%d\n", -11 % -5); // -1(与-11同号)
printf("%d\n", -11 % 5); // -1(与-11同号)
return 0;
}
变量创建时赋予初始值称为初始化,创建后重新赋值称为赋值。
int a = 100; // 初始化
a = 200; // 赋值基本赋值:=是最常用的赋值操作符,可连续赋值(从右向左依次执行)。
int a = 3, b = 5, c = 0;
c = b = a + 3; // 等价于b = a+3(b=6),再c = b(c=6)虽然C语言支持连续赋值,但代码可读性较差,建议拆分为单独语句。
复合赋值符:为简化对变量的自增、自减等操作,C语言提供了复合赋值符:
+= -= *= /= %=
>>= <<= &= |= ^= // 后5种将在后续讲解例如:
int a = 10;
a += 3; // 等价于a = a + 3(a=13)
a -= 2; // 等价于a = a - 2(a=11)逻辑操作符用于构建逻辑判断表达式,包括:
!:逻辑取反(单目操作符,改变表达式的真假)。&&:逻辑与(双目操作符,两侧表达式均为真时结果为真,否则为假)。||:逻辑或(双目操作符,两侧表达式至少一个为真时结果为真,否则为假)。在C语言中,0表示假,非零值表示真。
!会将真(非零)变为假(0),将假(0)变为真(1)。
#include <stdio.h>
int main() {
int flag = 0; // flag为假
if (!flag) { // !flag为真,执行分支
printf("do something\n");
}
return 0;
}
两侧表达式均为真时,结果为真;只要有一个为假,结果为假。
#include <stdio.h>
int main() {
int month = 4;
// 月份在3-5之间时,为春季
if (month >= 3 && month <= 5) {
printf("春季\n"); // 输出春季
}
return 0;
}
两侧表达式至少一个为真时,结果为真;均为假时,结果为假。
#include <stdio.h>
int main() {
int month = 1;
// 12月、1月、2月为冬季
if (month == 12 || month == 1 || month == 2) {
printf("冬季\n"); // 输出冬季
}
return 0;
}
逻辑操作符具有短路求值特性:仅根据左侧表达式结果就能确定整个表达式的结果时,不再计算右侧表达式。
&&:左侧为假时,右侧不再计算。||:左侧为真时,右侧不再计算。例如:
int a = 1, b = 2;
if (a > 5 && ++b) { // a>5为假,&&短路,++b不执行
// 不执行
}
printf("%d\n", b); // 输出2(b未改变)
关系操作符用于比较表达式的大小,返回0(假)或1(真),主要包括:
>:大于<:小于>=:大于等于<=:小于等于==:等于!=:不等于关系表达式常用于if、while等条件判断结构中。
#include <stdio.h>
int main() {
int x = 5;
if (x == 5) { // x等于5时执行
printf("x is 5.\n");
}
return 0;
}
注意事项:
==(等于)和=(赋值):
if (x == 5)写成if (x = 5),会给x赋值5,且表达式结果为5(真),导致逻辑错误。if (5 == x),若误写为5 = x,编译器会报错(常量不能被赋值)。i < j < k并非判断j在i和k之间,而是先计算i < j(结果为0或1),再与k比较。i < j && j < k。++(自增)和--(自减)均为单目操作符,分为前置和后置两种形式。
++:先将变量值加1,再使用变量(++a)。++:先使用变量,再将变量值加1(a++)。--的规则与++类似,只是将加1改为减1。示例:
#include <stdio.h>
int main() {
// 前置++
int a = 10;
int b = ++a; // a先+1(a=11),再赋值给b(b=11)
printf("a=%d b=%d\n", a, b); // 输出a=11 b=11
// 后置++
int c = 10;
int d = c++; // 先将c的值(10)赋给d,再c+1(c=11)
printf("c=%d d=%d\n", c, d); // 输出c=11 d=10
return 0;
}
本文详细讲解了C语言中算术、赋值、逻辑、关系、自增自减等操作符的用法,涵盖了整数除法的取整规则、逻辑运算的短路特性、关系操作符的使用误区等关键细节。这些基础操作符是构建复杂程序逻辑的基石,理解其原理有助于写出更高效、更可靠的代码。