본문 바로가기

IT용어 또는 정리

const 포인터! 해깔린다..

예전엔 자주 썼는데 요새 코딩보단 이론적으로 접근하다보니까 사용빈도가 급격히 줄어들어 자꾸 헷갈린다;
역시 프로그래밍은 닥치고 코딩을..

아 요점은

int main() 
{
	int temp = 10;
	int temp2 = 20;
	const int *p = &temp;

	*p = 50;
	p = &temp2;
} 
결과는?
*p = 50; 에서 에러가 발생한다.
const int *p; 는 int* 즉 포인터가 가르키는 값을 상수화 시킨다는 것이다.
고로 temp의값을 *p로는 값을 바꿀수가 없다.
뭐 저경우에는 temp자체를 바꾸면 바꿔지지만 요점은 이게아니고.



int main() 
{
	int temp = 10;
	int temp2 = 20;
	int * const p = &temp;

	*p = 50;
	p = &temp2;
} 
결과는?
p = &temp2; 에서 에러가 발생한다.
int * const p; 는 주소를 담는 p를 상수화 한다는 것이다. 고로 주소가 변경이 불가능하다! 
위는 p에 다른 주소값을 대입하려고 한다.
자연스럽게 에러가 뜬다!

그렇다면 주소를 바꾸지도 값을 바꾸지도 못하고 싶다면 !
 
const int * const p = &temp;
라고 하면된다 !

'IT용어 또는 정리' 카테고리의 다른 글

카페에서 Wifi 접속이 안 될 경우  (0) 2012.08.16
i386 ?? x86 ?? x86_64 ??  (0) 2012.03.27
BigData ??  (1) 2012.01.06
암달의 법칙  (0) 2012.01.03
DB) 트랜젝션, transaction 이란  (0) 2011.12.28