'포인터'에 해당되는 글 1건

  1. 2015.02.07 const 를 이용한 포인터 상수화
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만 가리켜야 한다.


출처 : http://blog.naver.com/ac7979/140084296409

'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
Posted by 역시인생한방
,