제가 알고있는 차이로는
1. const는 정적 취급이고 readonly는 인스턴스 취급이다. (readonly에 static을 선언하면 정적 취급)
2. const는 변수 선언과 동시에 값을 할당해야 하지만 readonly는 선언만 해놓은 후 생성자 내부에서 값을 몇 번이고 바꿀 수 있다.
3. const는 기본 자료형(int, string, enum)에 대해서만 사용할 수 있고 readonly는 모든 타입으로 사용할 수 있다.
4. const는 메소드 내부에서도 선언할 수 있는데 메소드에서 지역변수로 사용하게 되면 스택 메모리에 할당되며 클래스 필드로 사용하게 되면 힙에 할당된다.
그리고 정말 죄송하지만 부가적인 질문 하나가 더 있는데..
구조체 필드로써 선언한 값 형식은 스택, 참조 형식은 참조가 스택에 있고 그 주소를 찍고 들어가 보면 힙메모리에 객체가 저장되어 있는 건 알겠는데
구조체에서 const로 선언한 값 형식의 필드도 스택에 올라가는 게 맞나요..?
[최초 등록일: ]
[최종 수정일: 3/9/2022]