작성
·
293
0
안녕하세요! 강의를 보던 중에 헷갈리는 부분이 있어서 질문드립니다.
기본형은 만들어진 데이터를 계속 재사용한다고 설명해주셨는데
그럼 5003번 주소를 참조하고 있을 경우에 증감연산자(++, --)를 수행하면
5003번 주소에 있는 값 자체를 바꾸는 것인가요, 새로운 값을 저장해서 그 메모리 주소를 참조해주는 것인가요?
전자라면 그렇게 되면 같은 값을 바라보고 있는 변수들은 다 값이 변경되는건지도 궁금합니다..!
좋은 강의 제공해주셔서 감사합니다!
답변 4
2
우선 값을 증가시킨 다음 해당 값이 저장된 메모리가 있는지를 먼저 찾습니다.
있다면 해당 메모리 주소를 참조하게 되고,
없다면 새로운 값을 저장해서 그 메모리 주소를 참조하게 됩니다.
즉 한 번 메모리에 저장된 기본형 데이터는 사라지지 않는 한은 영원히 변하지 않습니다.
0
완전히 잘못 이해하셨습니다.
var a = 10;
var b = 10;
var c = a;
에서 변수를 위한 공간은 3개이고, 값을 위한 공간은 10 하나뿐입니다.
a = 20;
c = 30;
이제 값을 위한 공간은 10, 20, 30 총 세개가 되었습니다.
10, 20, 30은 "기본형 데이터"입니다. 기본형 데이터는 덮어씌울 수 없습니다.
강의를 다시 한 번 찬찬히 들어보시길 바래요.
0
안녕하세요! 답변을 읽다가 궁금한 게 생겨서 글을 적습니다.
우선 값을 증가시킨 다음 해당 값이 저장된 메모리가 있는지를 먼저 찾습니다.
즉 한 번 메모리에 저장된 기본형 데이터는 사라지지 않는 한은 영원히 변하지 않습니다.
라고 답변해주셨는데요.
아래와 같은 코드를 작성하면 메모리 상에는 어떻게 저장되는지 궁금해요!
var a = 10;
var b = 10;
var c = a;
제가 강의를 듣고 이해한 바로는,
변수를 위한 공간은 a, b, c 총 세개 확보되고
값을 위한 공간은 10, 10 두개일 거 같은데 맞나요?
여기서 다시
a = 20;
c = 30;
이라 할당하면
a가 가리킬 값 20이 추가로 저장되고,
c변수가 바라보던 10은 30으로 덮어씌워지는 것이 맞나요?
강의를 통해 많이 배우고 있어요! 항상 감사합니다!ㅎㅎ
0