const는 constant 지속적인, 변하지 않는 ... 여기서 나온 키워드이다.
const 는 값의 변화를 방지하기 위한 키워드 이다.
사용 방법
int const x = 10;
const int x = 5;
결과 변수 x는 변하지 않는 인티저(정수)값을 가지게 된다. 둘 다 새로 값을 변화시킬 수 없고 읽기만 가능하다.
const는 주로 값의 변화를 주지 않기 위해서 사용된다 .
약간 생각해볼 점은 포인터에서 있다.
두 가지 방법으로 정의가 되는데, 하나는 포인터가 가리키는 데이터를 변화시킬 수 있거나 포인터 그 자체를 변화시키는 것이다.
예를 들어
1. const int *pNum;
2. int *const pNum;
먼저 1번의 예를 보면
- #include <iostream>
- using namespace std;
- int main() {
- int x = 10;
- int y = 20;
- int * const pNum = &x;
- *pNum = y; // succeed
- //pNum = &y; // fail
- cout << pNum << " , " << &x << ", " << &y << endl;
- cout << *pNum;
- return 0;
- }
stdout:
0xbfc1bd98 , 0xbfc1bd98, 0xbfc1bd9c
20
포인터 *pNum이 가리키는 값을 constant한게 아니라
변수 pNum을 constant 시켜비린 것이다.
그렇기 때문에 포인터 *pNum이 가리키는 값을 변화 시킬 수 있다.
하지만 pNum의 주소를 저장하고 있는 곳은 바꿀 수 없다.
2번의 예를 보면
- #include <iostream>
- using namespace std;
- int main() {
- int x = 10;
- int y = 20;
- const int *pNum = &x;
- // *pNum = 20; // fail
- pNum = &y; // succeed
- cout << pNum << " , " << &x << ", " << &y << endl;
- cout << *pNum;
- return 0;
- }
stdout:
0xbfdab1cc , 0xbfdab1c8, 0xbfdab1cc
20
const int 형태이다. 곧 바꿀 수 없는 int형이다.
그렇기 때문에 포인터가 가리키는 변수 값을 바꿀 수 없다.
하지만 pNum에 대한 값은 바꿀 수 있다.
반응형
'IT > C Language' 카테고리의 다른 글
c언어 기초알고리즘 연습 (0) | 2015.04.30 |
---|---|
C++ 텍스트파일 배열로 저장 (0) | 2014.12.19 |
파스칼의 세모꼴 (0) | 2014.12.19 |
uchar (0) | 2014.12.19 |
산술 연산 관련 팁 (0) | 2014.12.19 |