336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1. 포인터가 가리키는 변수의 상수화
void main()
{
int a = 10;
const int* p = &a;
*p = 20; // 에러
a = 20; // 정상 출력
}
즉, p가 가리키는 대상이 상수화가 된다.
그렇기 때문에 *p = 20 했을 때, *p가 가리키는 대상이 상수화 되기 때문에 값을 변경하지 못한다.
그러나, 포인터가 가리키는 값만 변경하지 못할 뿐, 일반 변수로써의 a값은 변경 가능하다.
2. 포인터 상수화
void main()
{
int a = 10;
int b = 20;
int* const p = &a;
p = &b; // 에러
*p = 30; // 정상 출력
}
p 자체가 상수화 된다.
p는 원래 a를 가리켰기 때문에, 다른 위치(b)를 가리킬 수 없다.
즉, p가 가리키는 주소는 다른 주소로 변경될 수 없다.
3. 포인터가 가리키는 변수의 상수화 + 포인터 상수화
const int* const p = &a;
1번과 2번을 합쳐놓은 형태이다.
포인터 p가 가리키는 변수의 값도 변경하지 못하고, 포인터 p는 프로그램이 종료될 때까지
a만 가리켜야 한다.
'Programming > C / C++' 카테고리의 다른 글
numeric_limits (0) | 2015.02.07 |
---|---|
bitset (0) | 2015.02.07 |
override, abstract, __interface, sealed (0) | 2015.02.07 |
switch 분할 호출 (0) | 2015.02.07 |
가변 인수 (0) | 2015.02.07 |