전위증가 후위증가로 검색해봐도
뭐 값을 복사해놓고 더한 다음에 다시 돌려준다 이런 식의 설명은 있는데
다들 한 줄이 끝나고 값이 들어가는 거 같이 설명되어 있던데요
b[i] = a[i++] 를 하면
b[0] = a[1] 이런 식으로 되는데
또
b[i] += a[i++] 하면
b[1] += a[1], i++
로 작동하더라구요.
이게 vector 클래스에 대해 정의되어 있는 += 연산자랑 = 연산자랑 차이가 있다던가 뭐 그런 거 같은데...
이유를 알 수 있을까요?
아 그리고 vs에서랑 g++에서 전위/후위연산자 처리가 다를 수 있나요?
이거는 정확히 어떤 경우에서 그런지 못 찾아냈는데
가끔 값이 다르게 나타나더라고요....
개떡같이 해도 vs가 알아서 커버쳐줘서 그런 거 같은데...
#########
11일 00시 05분 작성자 추가
그냥 array에 대해서는 전, 후자 둘 다 잘 되네요
벡터 관련 문제 맞는 듯....
sequence point관련된거 아님?ㅋㅋㅋ
아 이런 개념이 있네요 일단 그 것도 한 번 알아볼게요
Left to right 저거 implementation-defined아님?
나중에 한 번 읽어봐야겠네요...
vs는 표준이랑 다른게 있댔음
vs 하긴 void main() 같은 거도 되더라구요 ㅋㅋ;;