1.
shallow copy
2.
ref
저 두 상황에서 참조형 변수를 변경할때 ref를 붙이든 안붙이든 결과값은 5로 똑같지만
첫번째 상황은 a1이라는 참조변수를 스택에 새롭게 만들어서 a랑 같은 주소값을 복사해 같은힙을 바라보게 한거자나
두번째 상황은 ref를 붙이면 아예 a의 주소자체를 가르키게 되서 스택복사가 일어나지 않고 (내가 이해한 작동방식이 맞다면)
같은 결과값이라도 첫번째 상황보다 두번째 상황이 메모리안에서 더 효율적인거 아님?
내가 생각한게 맞는지 아닌건지 궁금해서 질문한거
(ref작동방식과 언제 쓰여야하는지는 알고있음 이 질문은 그것과 무관하게 쓰나 안쓰나 상관없는곳에서 그래도 쓰는게 저 두차이때문에 낫지않냐는 질문임)
스택에 왜 새로 만드냐 첫번째는 ldloc으로 넣고 두번째는 ldloca로 스택주소 가져와서 넣는거
첫번째는 a객체의 포인터를 가지고 있어서 바로 호출하는거고 두번째는 a객체의 포인터의 참조를 가지고 있어서 더 느림
내가 배운책에선 첫번째상황은 또다른 메모리공간에 주소값이 복사되는걸로 나옴. ldloc는 내가 배운범위에선 안나오니 그게 메모리 공간을 말하는건지 아닌진 모르겠고 니말은 책이 틀렸다는거임?
그리고 니가 설명한걸 반대로해야 맞는거 아니냐?
아무리 봐도 두번째 상황이 주소값에 바로 접근하는 상황같은데