noname02

const 키워드 본문

Study/C

const 키워드

kimtaku 2015. 4. 4. 14:07
const 키워드는 상수화를 뜻하는데, 이는 값의 변경이 원칙적으로 차단되는 것을 말한다.
즉 10=20; 같이 상수의 변경이 불가능한 것처럼, 변수를 상수화시켜 변수의 값 변경을 불가능하게 하는 것이다.

1) 변수의 상수화

const int A=10;
- 변수를 선언과 동시에 초기화시켜, 나중에 값을 바꾸지 못하게 한다.
- 값이 변하면 안되는 변수가 필요할 때 사용한다. 소스가 짧은 줄이면 딱히 문제 될게 없지만, 소스의 길이가 길어지면 프로그래머의 실수로 바꾸면 안될 값을 바꾸는 것을 방지할 수 있다.
- 반드시 선언과 동시에 초기화를 시켜야 하며, 그렇지 않은 경우 컴파일 오류를 발생시킨다.
- 메크로 상수와 개념이 비슷하다.

2) 포인터가 가리키는 변수의 상수화

int a = 10;
const int* p = &a;
*p = 30; // ERROR
a = 30; // OK
- 역시 선언과 동시에 초기화를 시켜줘야 한다.
- 포인터를 통한 변수의 값 변경은 불가능하다.
- 포인터가 가리키는 변수의 직접적인 값 변경은 가능하다.

3) 포인터의 상수화

int a = 10;
int b = 20;
int* const p = &a;
p=&b; // ERROR
*p=b; // OK

- 선언과 동시에 초기화를 시켜줘야 한다.
- 포인터가 가리키는 변수 변경이 불가능하다.
- 포인터가 가리키는 변수 값 변경은 가능하다.


'Study > C' 카테고리의 다른 글

문자열 변수 선언  (0) 2015.04.04
자료형 접미사  (0) 2015.04.04
static 변수  (0) 2015.04.04
문자열 관련 함수  (0) 2015.04.03
서식 문자, 특수 문자  (0) 2015.04.02
Comments