Byte a = 123;
a++;
System.out.println(a);// 124
/*
* 上面的结论是: a++的时候首先是 创建一个Byte对象124,然后将a引用指向这个Byte 124对象,这个解释有问题吗?
*/
Byte b = 126;
b = b++;
System.out.println(b);// 126
/*
* 根据第一段代码的执行结果;
* b=b++,的执行操作是首相将b引用赋值给b引用,所以没有改变,然后将b引用所指向的对象自增(这个实现的过程是创建一个对象值为127,
* 然后让b引用指向这个127),如果这样理解,结果不应该是127吗
*/
求解,谢谢
b = b++: C++를 아는 경우 ++의 자체 증가 구현을 참조하면 왜 126인지 이해할 수 있을 것입니다
으아아아b는 연산이 증가되기 전의 temp와 같다고 이해할 수 있습니다
++, --는 별도로 작성해야 하며, 그렇지 않으면 본인에게 문제가 발생합니다.
i=i+++++i
같은 질문엔 경멸밖에 안되는데...해결됨
http://blog.csdn.net/brooksyc...
댓글 달기
++b와 b++의 차이는 사실 쓸모가 없습니다
Java 스택 프레임에는 지역 변수 테이블과 피연산자 스택이 포함됩니다. ++ 증분 연산은 로컬 변수 테이블의 값에 대한 직접 연산입니다. i=i++인 경우 먼저 지역 변수 테이블에 i를 추가합니다. 피연산자 스택에 푸시한 후 지역 변수 테이블의 i에 1을 더해 127이 됩니다. 그런 다음 피연산자 스택의 i(126)를 지역 변수 테이블의 i에 다시 쓰고 127 데이터를 덮어 126으로 변경합니다. . ++i의 순서는 다릅니다. 먼저 지역 변수 테이블에서 i를 증가시킨 다음 피연산자 스택에 추가합니다.