1. i = i++;是首先完成赋值后i再完成++运算,也就是说i = i++;首先就赋给了i=0了,再计算i++,这样一来,i的值就已经是0了.如果你科学稍稍修改一下
i = i++;
int b = i++;
这时打印的结果是b=0;i=1;2.你那个fermin()方法中运算的只是那个方法中的变量,而你打印的却是main()方法中变量,所以不会改变.以上是我的理解.
i = i++;
int b = i++;
这时打印的结果是b=0;i=1;2.你那个fermin()方法中运算的只是那个方法中的变量,而你打印的却是main()方法中变量,所以不会改变.以上是我的理解.
i=(i++);先执行i++;i++的值为0,0复制给i. i当然还是0第二个,是作用范围和形参和实参的问题。很搞不多说了,C里面也有相似的题目我不是牛,我只不过是个菜鸟。如果不对,请多多包涵
int i=0;
(i++)+(i++)+(i++)
还有这种
(1==1)||(++i==2)是什么结果,i会变成什么?
i=(i++);先执行i++;i++的值为0,0复制给i. i当然还是0
---------------------------------------------------
i = i++;是先执行i++吗????++i才是先执行i++啊,是先执行赋值语句啊,是先将i=0赋给左边的i,再运算i++吧
如果按你的思路 i=i++;<==>(i=i)++; 疑惑ing
++i 是先赋值在操作public class Inc{
public static void main(String argv[]){
Inc inc = new Inc();
int i = 0;
System.out.println(i++);
i = 0;
System.out.println(++i);
}
}结果应该是:
0
1
对于i=++i ,JAVA和C的处理方法相同,都是先自加增1后再赋值,如果i等于5
i=++i;之后,i等于6
对于i=i++ ,JAVA和C的处理方法是不同的,C先把i的值作用于表达式,之后再自增,也就是
如果i等于5,i=i++;C是先执行i=5,再执行 i++,最后i等于6
但JAVA对于i=i++,是只执行 i=i,之后不再i++,因为等号左右变量相同,所以对于i等于5
i=i++;之后i还是5;不过等号左右的变量不同时,处理方法和C是一样的,如果i等于5,
j=i++;之后,j等于5,i变成6第2个类:
inc.fermin(i);是把i的__值__作为参数(而不是地址)传递给了方法fermin(),无论fermin()内部如何操作,都不能对被传入的i(不在同一地址)造成改变,所以打印结果还是原来的i,(0)