15 回答
TA贡献3条经验 获得超2个赞
x=(m+n*5+(n--))
=(5+7*5+(7--))
我相信楼主这步应该没有疑惑。我们先将(7--)搁浅,前面部分的结果为
x=(40+(7--))
这里就涉及 n-- 是什么意思的问题了
n--其实是一种缩写,原来的表达应该是“n=n-1”,只不过这种表达比较好看啦,方便啦。普遍什么的大家都这么用了。
这里插播一个小知识点。
n-- 和 --n 的问题
--(或者++)在字母的后面,表示为:赋值之后再运算。而--(或++)在字母的前面表示运算之后再赋值。运算就是指加1的运算。
题目是--在字母后面,所以先赋值。再自己加上1.
因此,拆解下来
x=(40+n) n=n-1;
所以x=47,n=6;
参考程序(c语言):
#include<stdio.h>
main()
{
int m=5;
int n=7;
int x=(m+n*5+(n--));
printf("x=%d,n=%d",x,n);
}
TA贡献3条经验 获得超2个赞
我想你应该是在n--这里搞不明白吧。你可能认为n--之后,值变为了6。
这里要说到n--和--n的区别:--n是遇到之后,直接对n减1
n--是在本语句执行结束后,才对n进行减1操作。
望采纳。
TA贡献5条经验 获得超0个赞
简单粗暴理解就是,以分好(;)为界,出现后++或者后--,在分号这一句代码结束之前都用原来的数值,分号结束后在给原数值加减一! int x=(m+n*5+(n--)); 这一句分号以前n都等于7,分号完结时在给n减去1
TA贡献4条经验 获得超0个赞
自增,自减运算问题
var n=0; console.log(n++) // 输出0 console.log(n) // 输出1 //--------------------- var n=0; console.log(++n) //输出 1 console.log(n) //输出 1
TA贡献223条经验 获得超56个赞
这个涉及到i++,i--运算这两个是先赋值再运算。
public static void main(String[] args) {
int m = 5;
int n = 7;
int j =(n--);
int x=(m+n*5+(n--));
System.out.println(j);
System.out.println(n);
}
//运行结果
7
5
添加回答
举报