const2 [C] const 와 포인터 [C] const와 포인터 지난 포스팅에서 const와 포인터에 대해 알아보았다. 이제 그 둘의 관계에 대해 조금 더 알아보고자 한다. 기존에 배웠던 것을 떠올려보자. int a = 0; int* pInt = &a; //pInt가 a의 주소값을 가리키고 있다. *pInt = 1; // a의 값이 1로 바뀌었다. pInt = nullptr; // pInt가 a를 가리키지 않고 null을 가리키도록 바뀌었다. 여기까지는 잘 이해했을 거라고 생각한다. 포인터는 가리키는 변수의 값을 바꿀 수도 있고, 가리키는 것의 방향도 바꿀 수 있다. - const 포인터 int b = 0; const int* pConstInt = &a; //a 주소값을 가리킨다. *pConstInt = 100; //error // 포인터변.. 2022. 1. 4. [C] const, const 값 바꾸기 [C] const, const 값 바꾸기 - const란? const는 변동되지 않는 상수를 뜻한다. const int cint = 100; // cint 값을 변동하지 못한다. -value : 상수 l-value : 변수 C라는 문법이 const를 쓰면 값이 변동되는 것을 문법적으로 막아줄 뿐이지 정말로 진짜 상수처럼 값을 절대 바꿀 수 없는 것은 아니다 - Q: 그러면 const에 상수의 값을 어떻게 바꿀 수 있는가? A: 포인터로 주소로 직접 가서 값을 바꾸면 된다! const int cint = 100; pInt = (int*)&cint; *pInt = 300; printf("cint 출력: %d \n", cint); 디버깅을 하면 300이 안 나온다. 물론 값은 300으로 바뀌어 있다! cint.. 2022. 1. 4. 이전 1 다음