사실 전역화 한다 상수화 한다 이런식으로 추상적으로만 알고 있었는데 막상 소스에서 보면
늘 혼란을 느낄 때가 많아서 이번에 정리 좀 해두고자 한다.

 

static
: 선언을 하게 되면 그 위치에 상관없이 프로그램의 시작부터 끝까지 메모리에 할당돼 있으면서 그 값을 마음대로 바꿀 수 있는 것. 
 위치에 대해서는 전역변수든 지역변수든 상관 없다.

const
: 해당 변수를 초기화한 이후에는 절대로 바꾸지 못하도록 선언하는 것.
  초기화가 되고 나면 그 이후에는 절대 값을 바꿀 수 없게 된다.


즉 둘은 처리 방식 자체가 상당히 달랐던 것.

 

 

이를 확인할 수 있게 간단하게 예제를 짜 봤다.

C에서 확인 가능.

위와 같이 for문을 돌리게 되면
static으로 선언한 변수는 값 변환이 가능하지만
const로 선언한 변수는
'식이 수정할 수 있는 iValue여야 합니다.'
라는 에러와 함께 빨간줄을 보여준다.