1) constant와 literal의 관계는?
상수가 리터럴을 포함하는 개념으로 이해하고 있습니다. 따라서 상수는 항상 리터럴이 될 수 있지만, 리터럴은 상수가 될 수 없는게 맞는건가요? 참고로 프로그램 소스에서 글자 그대로의 값(문자, 문자열 포함)을 리터럴로, 리터럴에서 자료형이 추가되어 메모리에 저장된 값이 항상 일정한 것을 상수라고 이해하고 있습니다.
2) constant는 정말 변경할 수 없나요?
흔히 상수를 변하지 않는 수, 항상 일정한 수라고 설명하잖아요? 그럼 우리가 일반적으로 아는 상수는 컴파일러 역시 구분할 수 있을테고, 그런 상수는 프로그램 실행 중에 운영체제가 변하지 않도록(항상 일정 하도록) 소프트웨어적으로 보호 해주는게 맞을까요? 그럼 결국 상수는 물리적으로(하드웨어적으로) 변경될 수 있는건 맞나요? 상수가 저장되는 물리적 장치가 일반적으로 RAM 이니까요.