I는 C로 프로그래밍 미치자 ++ (12 월 C++) -Unary Post Operators가 C++ 및 Java에서 다르게 동작하는 이유는 무엇입니까?
I 자바에서 실행할 때 변수int k = 5;
k = k++;
cout<<"Value of K :"<<k<<endl;
int l = 5;
l = l++ + l++;
cout<<"Value of L :"<<l<<endl;
int m = 5;
m = m++ + m++ + m++;
cout<<"Value of M :"<<m<<endl;
얻은 5,12- (18)는, L 및 m ..하지만 동일한 프로그램 케이
int k = 5;
k = k++;
System.out.println("Value of K :"+k);
int l = 5;
l = l++ + l++;
System.out.println("Value of L :"+l);
int m = 5;
m = m++ + m++ + m++;
System.out.println("Value of M :"+m);
난 후 단항 연산자의 계산에 차이가 왜
.. 설명 변수, L 및 M을 k에 대한 5,11 18 있나? 운영자의 우선 순위 및 우선 순위 규칙을 알고 있습니다. 그러나 모든 것은 여기서 실패합니다. 하지만 C++의 답변은 규칙에 따라 합리적으로 보입니다. 자바 계산 방법이 혼란 스럽습니까?잘 알려진 C++ 및 Java가 다릅니다. Java에서 운영자 우선 순위 및 운영자 우선 순위를 처리하는 방법을 제안하십시오.
C++ 하나는 정의되지 않은 동작입니다. 자바 하나가 문서화되어있다. – chris
가능한 [정의되지 않은 동작 및 순서 포인트] (http://stackoverflow.com/questions/4176328/undefined-behavior-and-sequence-points) - C++ 및 Java는 두 가지 다른 언어입니다. Java에서는 동작이 명시 적으로 정의됩니다. –
@BrianRoach : 그 질문은 C++ 동작을 설명합니다. 그는 C++ 동작에 대해 궁금하지 않습니다 (비록 그가 있어야하지만, 그의 해석은 완전히 잘못되었습니다). 그가 이해하지 못하는 자바의 행동입니다. –