循环小谜题,关于j++的问题 循环谜题自增谜题堆栈 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你见过C++的后缀自增运算符的重载代码吗?某种程度上temp是确实存在的。 这个问题不注意还真不大容易弄明白。这其实是一个运算符的优先级问题。temp的这个数值肯定存在,但不是你说的那样temp = j;=号的优先级低于++,就是说要先计算++后才会进行=号的计算。“=”计算符原理是 将右边的表达式的值赋值给左边的表达式。左边的表达式是j,而右边的表达式是j++;程序先计算右边表达式的值:最开始,j的初始值为 j = 0;因为++运算符置于变量的后面,说明这个++运算符的计算在整个表达式结果计算出来后。所以此时程序不会去执行++计算,而是去先计算整个表达式的值,因为整个表达式就j一个变量,所以整个表达式的值就是j的值,此时j的值为0;及整个右边的表达式的值为0;此时程序已经计算出整个右边的表达式的值了,此时程序会将这个值存储起来,即用一个temp记录此时右边表达式的值0,temp=0;因为j已经参加完表达式的计算,然后进行++的操作,即j自增。此时j = j +1; 即j = 1;然后由于运算符优先级的问题,此时才会计算=号运算符,即将右边表达式的值(temp=0)赋值给左边表达式,即此时运行j = temp; 而temp = 0;所以此时j = 0;即最终j的值为0 关于struts2下载的那点奇怪事 接口的问题 问一个关于Jtable的问题! 位运算小问题! 我在做我的第一个项目(聊天室)接收消息时遇到麻烦了,请各位大虾不吝赐教!! java如何调用Lib文件 请问synchronized是什么? 小问题,关于硬件的.. 关于Java多态的理解疑惑 java 虚拟机 字节码 Java导入多个Excel表格 Java基础
这其实是一个运算符的优先级问题。temp的这个数值肯定存在,但不是你说的那样temp = j;
=号的优先级低于++,就是说要先计算++后才会进行=号的计算。
“=”计算符原理是 将右边的表达式的值赋值给左边的表达式。左边的表达式是j,而右边的表达式是j++;
程序先计算右边表达式的值:
最开始,j的初始值为 j = 0;因为++运算符置于变量的后面,说明这个++运算符的计算在整个表达式结果计算出来后。
所以此时程序不会去执行++计算,而是去先计算整个表达式的值,因为整个表达式就j一个变量,所以整个表达式的值就是j的值,此时j的值为0;及整个右边的表达式的值为0;
此时程序已经计算出整个右边的表达式的值了,此时程序会将这个值存储起来,即用一个temp记录此时右边表达式的值0,temp=0;因为j已经参加完表达式的计算,然后进行++的操作,即j自增。此时j = j +1; 即j = 1;
然后由于运算符优先级的问题,此时才会计算=号运算符,即将右边表达式的值(temp=0)赋值给左边表达式,即此时运行
j = temp; 而temp = 0;所以此时j = 0;
即最终j的值为0