C语言中加减乘除用+、-、*、/,%仅用于整数取余;整数除法截断,浮点除法保留小数;++/--分前缀后缀;运算符有优先级和结合性,建议多用括号。

加减乘除在C语言里怎么写
直接用 +、-、*、/ 四个符号,没有例外。它们都是双目运算符,必须左右各有一个操作数,比如 a + b、x * y。
注意:别手滑写成 × 或 ÷——这些不是C语言的合法符号,编译会报错 error: expected expression 或类似语法错误。
整数除法和浮点除法结果完全不同
C语言里 / 的行为完全取决于操作数类型,不是变量类型,而是字面量或表达式实际参与运算时的类型。
-
10 / 3→ 结果是3(整数除法,直接截断小数,不四舍五入) -
10.0 / 3或10 / 3.0→ 结果是3.333333...(浮点除法) -
(float)10 / 3或10.0f / 3→ 同样触发浮点除法
常见坑:int score = 85; printf("%.1f", score / 100); 输出是 0.0,因为 score / 100 先做整除得 0,再转成浮点——正确写法是 score / 100.0 或 (double)score / 100。
立即学习“C语言免费学习笔记(深入)”;
取模 % 只能用于整数,且不能对零取模
% 是求余运算符,不是“百分号”,它要求左右操作数都必须是整型(int、long 等),不能是 float 或 double,否则编译报错 invalid operands to binary %。
-
11 % 4→3 -
-11 % 4→-3(符号跟随被除数) -
11 % 0→ 运行时崩溃(SIGFPE),除零未定义,和/一样危险
想对浮点数取余?用标准库函数 fmod(),头文件是 ,例如 fmod(7.5, 2.0) 返回 1.5。
自增自减 ++ 和 -- 别只记“加一减一”
它们是单目运算符,但前缀(++a)和后缀(a++)语义完全不同,尤其在表达式中混用时极易出错:
-
int a = 5; int b = a++;→b得5,a变成6 -
int a = 5; int b = ++a;→a先变6,b也得6 - 更危险的是:
int x = 5; x = x++ + ++x;—— 这属于未定义行为(UB),不同编译器结果可能不同,绝对要避免
除非明确需要副作用顺序,否则优先用 a = a + 1 或 a += 1,清晰安全。
最常被忽略的一点:所有这些运算符都有优先级和结合性。比如 a + b * c 一定先算 *,但 a = b = c 是从右往左结合。写复杂表达式时,多加括号比背优先级表更可靠。











