c语言中和差商积用什么表示_算术运算符+、-、*、/的使用

5次阅读

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

c语言中和差商积用什么表示_算术运算符+、-、*、/的使用

加减乘除在C语言里怎么写

直接用 +-*/ 四个符号,没有例外。它们都是双目运算符,必须左右各有一个操作数,比如 a + bx * y

注意:别手滑写成 ×÷——这些不是C语言的合法符号,编译会报错 Error: expected expression 或类似语法错误。

整数除法和浮点除法结果完全不同

C语言里 / 的行为完全取决于操作数类型,不是变量类型,而是字面量或表达式实际参与运算时的类型。

  • 10 / 3 → 结果是 3(整数除法,直接截断小数,不四舍五入)
  • 10.0 / 310 / 3.0 → 结果是 3.333333...(浮点除法)
  • (Float)10 / 310.0f / 3 → 同样触发浮点除法

常见坑:int score = 85; printf("%.1f", score / 100); 输出是 0.0,因为 score / 100 先做整除得 0,再转成浮点——正确写法是 score / 100.0(double)score / 100

立即学习C语言免费学习笔记(深入)”;

取模 % 只能用于整数,且不能对零取模

% 是求余运算符,不是“百分号”,它要求左右操作数都必须是整型intlong 等),不能是 floatdouble,否则编译报错 invalid operands to binary %

  • 11 % 43
  • -11 % 4-3(符号跟随被除数)
  • 11 % 0 → 运行时崩溃(SIGFPE),除零未定义,和 / 一样危险

想对浮点数取余?用标准库函数 fmod(),头文件是 ,例如 fmod(7.5, 2.0) 返回 1.5

自增自减 ++-- 别只记“加一减一”

它们是单目运算符,但前缀(++a)和后缀(a++)语义完全不同,尤其在表达式中混用时极易出错:

  • int a = 5; int b = a++;b5a 变成 6
  • int a = 5; int b = ++a;a 先变 6b 也得 6
  • 更危险的是:int x = 5; x = x++ + ++x; —— 这属于未定义行为(UB),不同编译器结果可能不同,绝对要避免

除非明确需要副作用顺序,否则优先用 a = a + 1a += 1,清晰安全。

最常被忽略的一点:所有这些运算符都有优先级和结合性。比如 a + b * c 一定先算 *,但 a = b = c 是从右往左结合。写复杂表达式时,多加括号比背优先级表更可靠。

text=ZqhQzanResources