IT용어 또는 정리
const 포인터! 해깔린다..
Gh0st_Sp1der
2012. 1. 12. 22:51
예전엔 자주 썼는데 요새 코딩보단 이론적으로 접근하다보니까 사용빈도가 급격히 줄어들어 자꾸 헷갈린다;
역시 프로그래밍은 닥치고 코딩을..
아 요점은
*p = 50; 에서 에러가 발생한다.
const int *p; 는 int* 즉 포인터가 가르키는 값을 상수화 시킨다는 것이다.
고로 temp의값을 *p로는 값을 바꿀수가 없다.
뭐 저경우에는 temp자체를 바꾸면 바꿔지지만 요점은 이게아니고.
p = &temp2; 에서 에러가 발생한다.
int * const p; 는 주소를 담는 p를 상수화 한다는 것이다. 고로 주소가 변경이 불가능하다!
위는 p에 다른 주소값을 대입하려고 한다.
자연스럽게 에러가 뜬다!
그렇다면 주소를 바꾸지도 값을 바꾸지도 못하고 싶다면 !
역시 프로그래밍은 닥치고 코딩을..
아 요점은
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;라고 하면된다 !