x = x + (x++) + (++x) 结果过应该是 3x+1吧。 其实你不用管内部怎么计算的,只要知道 x++是返回x ++x是返回x+1就可以了。
其实这取决编译器,真的,你在cl下编译的结果和gun gcc下的编译的结果是不一样的。 如果这是java,那我只能说 IBM的JDK与SUN的JDK可能也不一样。
它其实是这样的,例如 int x = 2 ; 那么 x = x + (x++) + (++x) 就等于 x = 2 + 2 + 4 ; 因为先运算左括号里的再运算右括号的,而左括号的(x++)会先把x = 2用于运算,再将x+1变为3来存储 x,此时x=3便参与右括号(++x)的计算,而这样是先++之后的到x=4再存储来运算。你要记得 x++是用x来计算或者做其他的输出之类的然后才会++再存储用以下面的,而++x就刚好相反,其 是先++给x加1之后存储再进行当前的计算,只要记得“后++用以后面,前++用以前面”就不会出错了
62,614
社区成员
307,326
社区内容
加载中
试试用AI创作助手写篇文章吧