어떤 차이가 있는지 이해가 안돼서 질문드립니다..

onground Reply 3 years 43 weeks ago
int c = *a; *a = *b, * b = c; 과 *a ^= *b ^= *a ^= *b; 가 어떤 차이가 있는 것인가요? 앞서 질문 후 아래의 방법으로 음수와 양수, 음수와 음수의 swap도 올바르게 작동하는 것을 확인했었습니다..
withcs2 Reply 3 years 43 weeks ago
주소 xor 오버플로우인줄 알았는데 이제보니 *a 쓰셨었네요 잘못봤습니다... 리눅스에서 *a^=*b^=*a^=*b 하면 가상메모리에 저장되어 a=a^b^a^b라서 0, b=b^a^b라서 a 가 나옵니다. 아마 *a ^= *b; *b^=*a; *a^=*b; 로 했으면 제대로 나왔을 거예요
onground Reply 3 years 43 weeks ago
오 감사합니당~~~