¶ÁÊéÈË

i=++i+i++; ¡£½â¾ö°ì·¨

·¢²¼Ê±¼ä£º 2012-04-28 11:49:53 ×÷Õߣº rapoo

i=++i+i++; ¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£¡£

Java code
public static void main(String[] args) {        int i = 0;        i=++i+i++;        System.out.println(i);    }


Ö´ÐÐ˳ÐòÊÇÏÈi++ºó++iô£¿Èç¹ûÊÇ£¬i++Ö®ºó£¬ÔÚ++iʱµÄÖµÊDZ仯ºóµÄֵô£¿£¿

[½â¾ö°ì·¨]
ÏÈÖ´ÐÐ++i°É?
[½â¾ö°ì·¨]
ÕâÖÖÎÊÌ⣬ÆäʵÔËÐÐÏÂjavap -c ÀàÃû¾ÍÁ¢ÂíÖªµÀÔ­ÒòÁË
[½â¾ö°ì·¨]
int i = 0;
int k=++i;
int m=i++;
i=k+m;
ÕâÑùÊDz»ÊǸüÈÝÒ×Àí½âЩ
[½â¾ö°ì·¨]
×îºÃ²»ÒªÍæÕâÑùµÄ´úÂë¡£¡£ÕâÑùµÄ´úÂë¿É¶ÁÐÔÌ«²î¡£¡£Èç¹ûÄãÖªµÀÔõôÀ´Ö´ÐÐ ×îºÃʹÓÃÀ¨ºÅÀ´ÊµÏÖ
[½â¾ö°ì·¨]
ÏÈ++i,ºói++ È»ºóÁ½¸öÏà¼Ó¸³Öµ¸øi ½á¹ûÊÇ2°É
[½â¾ö°ì·¨]
Java code
public class a extends java.lang.Object{public a();  Code:   0:   aload_0   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V   4:   returnpublic static void main(java.lang.String[]);  Code:                        //¡¾¡¿±íʾջ£¬Õ»¶¥ÔÚ×î×ó¶Ë   0:   iconst_0               //³£Á¿0ÈëÕ»£¬Õ»ÖÐÄÚÈÝΪ¡¾0¡¿   1:   istore_1               //´ÓÕ»¶¥µ¯³öÒ»¸öint£¬´æµ½¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄ±äÁ¿ÖУ¬¼´¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄ±äÁ¿ÖµÎª0£¬´ËʱջÖÐÄÚÈÝΪ¡¾¡¿   2:   iinc   1, 1           //¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄµÄ±äÁ¿¼Ó1£¬¼´¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄµÄ±äÁ¿´ËʱֵΪ1£¬Õ»ÖÐÄÚÈÝΪ¡¾¡¿   5:   iload_1                //½«¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄ±äÁ¿ÖµÈëÕ»£¬Õ»ÖÐÄÚÈÝΪ¡¾1¡¿   6:   iload_1                //½«¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄ±äÁ¿ÖµÈëÕ»£¬Õ»ÖÐÄÚÈÝΪ¡¾1,1¡¿   7:   iinc    1, 1           //¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄµÄ±äÁ¿¼Ó1£¬¼´¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄµÄ±äÁ¿´ËʱֵΪ2£¬Õ»ÖÐÄÚÈÝΪ¡¾1,1¡¿   10:  iadd                   //´ÓÕ»¶¥µ¯³öÁ½¸öintÖµ£¬¼´ÉÏÃæÕ»ÖеÄÁ½¸ö1£¬Ïà¼Ó£¬ÔÙ½«½á¹ûÈëÕ»£¬´ËʱջÖеÄÄÚÈÝ¡¾2¡¿   11:  istore_1               //´ÓÕ»¶¥µ¯³öÒ»¸öint£¬¼´ÉÏÃæÕ»ÖеÄ2£¬±£´æµ½¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄ±äÁ¿ÖУ¬¼´¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄ±äÁ¿Öµ´ËʱΪ2£¬´ËʱջÖеÄÄÚÈÝΪ¡¾¡¿   12:  getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;ÒÔÏÂÊÇ´òÓ¡¾Ö²¿±äÁ¿ÇøË÷ÒýΪ1µÄ±äÁ¿Öµ   15:  iload_1   16:  invokevirtual   #3; //Method java/io/PrintStream.println:(I)V   19:  return}
[½â¾ö°ì·¨]
̽ÌÖ
Java code

public class a extends java.lang.Object{
public a();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return

public static void m¡­¡­

[½â¾ö°ì·¨]
̽ÌÖ

ÒýÓÃ:
Java code

public class a extends java.lang.Object{
public a();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: return

public static vo¡­¡­

[½â¾ö°ì·¨]
i=0
i=++i+i++
++i ±íʾÏÈÔËËãºó¸³Öµ ËùÒÔ++i ÕûÌåΪ1 £¬È»ºó°ÑÖµ¸³¸øi £¬ËùÒÔi=1
i++ ±íʾÏȸ³ÖµºóÔËËã ÒòΪiÒѾ­µÈÓÚ1ÁË£¬ËùÒÔi++Ϊ1,´Ëʱi=1;

×îÖյĽá¹ûÒ»¸ö¾ÍÊÇ£¨++i£©+£¨i++£©=2
[½â¾ö°ì·¨]
¿ÉÆäÖÐÒ»++ÊÇ´ý²Ù×÷¶¼ÈëÖ®áá²Å¼ÓµÄ£¬¼Ó·¨¹ûÓÐÓ°
¶øºó¼ÓµÄÈô²ÂÊÇi++£¬¿ÉÒÔͨ³ÌÐòÔÙһϣº

Java code
public class Test {        public static void main(String[] args) throws Exception {                int i = 0;        i=i+++1;        System.out.println(i);                   }}
[½â¾ö°ì·¨]
ÔÚ±í´ïʽÓÃʹÓÃǰ++ÊÇ ±äÁ¿ÏÈ+1ÔÚÔÚ±í´ïʽÖÐʹÓã¬
ÔÚ±í´ïʽÖÐʹÓúó++ÊÇ ÏÈÔÚ±í´ïʽÖÐʹÓÃÔÚ½øÐÐ+1£¬
ÀýÈ磺
int i = 0;
int j = ++i; //Õâ¸öʱºòÏÈ+ÔÚÓà j = 1; i = 1;
int k = i++; //Õâ¸öʱºòÏÈÓÃÔÙ+ k = 1; i = 2;

ËùÒÔÄãµÄ i = ++i + i++;ÖÐÏÈ×öÁËÒ»´Î++²Ù×÷i±äΪ1 È»ºó×ö i + i µÄ²Ù×÷Ϊ2£¬È»ºóÓÖ×öÁËÒ»´Î ++µÄ²Ù×÷Õâ¸öÊǺóiµÄֵΪ2£¬ È»ºóÔٰѱí´ïʽµÄÖµ¸³Öµ¸øi¼´2.Õâ¸öʱºòÓÐÊǻػ죬 Äã¿ÉÒÔ°ÉiµÄ³õʼֵÉèΪ3£¬Äã¿ÉÒÔ¿´µ½½á¹ûiÊÇ8ÁË¡£

¶ÁÊéÈËÍø >J2EE¿ª·¢

ÈȵãÍÆ¼ö