【发布时间】:2021-10-17 23:02:33
【问题描述】:
#include<stdio.h>
int main(){
int a=10,b=3,c=2,d=4,result;
result = a+a*-b/c%d+c*d;
printf("%d",result);
}
这个程序如何输出 15.. 我不明白操作背后的逻辑.. 有人可以告诉我如何计算吗?
【问题讨论】:
-
您期待什么结果,为什么?
-
如果您无法理解复杂的表达式,请将其拆分为更小更简单的部分,将结果存储在临时变量中。继续,直到小表达式不能更小(即它们只做一个操作)。然后使用 debugger 逐语句逐句执行代码,同时监视变量及其值。然后你可以很容易地看到结果何时变成了不应该的结果。
-
当您对表达式的计算感到困惑时,请使用大括号
() -
@AbhilekhGautam:术语“大括号”指的是
{},而不是(),因为它们被称为“括号”。两者的总称是"brackets"。 -
你的导师给了你这个练习,以便你思考和学习关于C。如果我们只是告诉你这个表达式的作用,你'什么都学不到。
标签: c operator-precedence arithmetic-expressions