상수화 == "값이 바뀔 수 없는 상태가 되었다"
l-value : 변수
r-value : 상수
cint 에 const 키워드를 붙이면 "문법적"으로 값을 변경하는 것을 막아주겠다라는 것이지
값을 아예 못 바꾼다는 것이 아니다.
(=> 아마 주소를 통해 변경이 가능하지 않을까? 싶다)
그래서
이러면 우짤껀데?
내가 캐치 해야할게
int* b = &a; 해버리면 에러남? =>
그래서 int b = (int)&a; 이렇게 캐스팅 해주어야함.
강의에서
volatile 키워드 == 레지스터? 안쓰겠다, 최적화 안하겠다.
지금
CPU는 중간연산 저장 결과로 빠르게 끌어다 쓰는 "레지스터 메모리"가 있다.
(빠르게 빠르게 쓸려고, 빠르게 끌어다 쓸려고)
그런데 const로 해놓은 100이라는 값을 이 레지스터에 기억을 하고 있었던 것이다.
그래서 저 300이라는 곳까지 굳이 접근을 해서 값을 가져오는게 아니라
레지스터에 바로 접근을 해버려서 100이 printf에 찍혔던 것이다.
다음 시간에는 const pointer