스터디 로그/Computer Science
[C] C언어의 무기, 포인터
콩
2023. 1. 29. 23:29
포인터
특정 데이터가 저장된 메모리의 주소를 저장하는 변수로, 프로그램의 어떠한 위치에서 시행되더라도 값의 특정한 주소를 그대로 이용하기 때문에 scope의 제한 없이 값을 변경할 수 있다. 배열 또한 내부적으로 포인터와 아주 흡사한 구조를 가지고 있다.
int x = 70;
int *y = &x;
위와 같이 정의했다고 했을 때, 두 번째 줄을 자세히 읽어내어 보자.
int *y와 같이 type과 *가 나란히 표현될 때, 우리는 int *y를 integer 값을 가리키는 포인터 y라고 이해할 수 있고,
이는 &x, 즉 x가 가리키는 메모리 주소와 같다고 읽어낼 수 있다.
포인터를 정의할 때 이외에, 즉 type과 붙어서 사용되지 않을 경우에는, *y를 포인터 y가 가리키는 값으로 해석할 수 있다.
따라서 위와 같이 선언했다면, &x는 y와 같고, x는 *y와 같은 것이다.
추후에 내용을 더 추가해 보겠다.
References
- https://youtu.be/JsS1A0xwozo
- https://www.youtube.com/watch?v=2ybLD6_2gKM&list=PLws_NKqQCCLNJ1k2QumU9DWAVkdgQ1uMJ&index=7
+ 제가 이해한 내용을 정리해 본 거라... 혹시라도 잘못된 부분이 있다면 알려주시면 감사하겠습니다!