본문 바로가기

pointer2

[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.
[C] 포인터 Pointer [C] 포인터 Pointer - 포인터란? 포인터는 두 수를 가리키는 기능을 뜻한다. - 포인터 변수 포인터 변수란 주소를 저장하는 변수를 뜻한다. 자료형* + 변수명 을 통해 포인터 변수를 선언한다. 자료형은 해당 포인터에게 전달된 주소를 해석하는 단위 int* i = 100; // i는 주소를 저장하는 변수이다. 위 포인트 변수는 주소로 접근했을 때 그곳의 실제 메모리 공간을 int로 보겠다. 1. 포인터 변수에 주소를 줬다. 2. 그 주소가 가리키는 곳에 실제적으로 어떤 용도로 쓰이는지는 포인터 변수에게는 중요하지 않음(선언 시점에서 이미 자료형이(용도) 정해져 있음) int 변수의 주소는 int 포인터가 받아가는 게 맞고 short 변수의 주소는 short 포인터가 받아가는 게 일반적으로 맞다. .. 2022. 1. 3.