해결된 질문
작성
·
77
2
안녕하세요 비전공자 첫 언어로 선생님의 C강의를 듣고있는 초보자 입니다.
첫 프로그래밍 수업이라 챕터 0 CPU작동방식을 설명을 해주셨어도 이게 뭐가 뭔지 모르니까 아 그런느낌 정도만 알고 있었고 각 강의마다 개념 이해하느라 급급해서 가장 기본적인 프로그램 자체의 구동방식을 생각 안하고 있었는데
이번 강의를 통해 프로그램 자체의 작동방식과 더불어 포인터는 주소를 저장하는 소소한 문법 중 하나일 뿐이다 라고만 이해하고 있었습니다.
근데 이 강의를 보고 이해한 점은 포인터는 사실 프로그램을 실행하는 그 자체인가? 라고 생각하게 되었습니다.
그래서 궁금한 점은
챕터 0 CPU작동 방식에서 먼저 CPU에서 주소를 호출하여 그 값을 가져온다는 개념과
변수도 결국 메모리 어떠 한 주소의 명칭으로 대신 사용한다는 개념과
이 강의에서 알게 된 함수 이름 자체가 포인터라는 사실 또 함수를 호출한다는 것은 함수의 포인터 주소로 가서 순차적 명령실행 방식이라는 설명을 통해 이해한 것 은
결국 프로그램 자체는 실행이 되었을 때 내부적으로 전부 포인터로 작동이 된다는 것 이라고 깨달았는데 이해한바가 맞을까요?
답변 1
2
안녕하세요? 질문&답변 도우미 Soobak 입니다.
프로그래밍을 처음 배우시는 분께서 이런 깊이 있는 질문을 하시다니 대단하시네요.
큰 틀에 있어서는 어느 정도 맥락을 잘 이해하셨다고 말씀드리고 싶지만,
분명히 해야 될 것은 '포인터' 는 C언어의 문법 요소 중 하나라는 점입니다.
즉, 포인터 자체가 "프로그램을 실행하는 그 자체" 는 아닙니다.
포인터는 C언어에서 메모리 주소를 저장하고 참조하는 데 사용되는 변수 타입입니다.
프로그램 실행은 CPU, 메모리, 그리고 운영체제 등이 관여하는 보다 복잡한 과정이며,
포인터는 이 과정에서 메모리 주소를 효과적으로 다룰 수 있도록 해주는 C언어의 문법적 요소로 이해하시는 것이 좋을 것 같습니다.
다만, 포인터에 대한 문법적인 학습을 통해서 CPU 와 메모리가 상호 작용하는 컴퓨터의 기본적인 작동 원리까지 맥락을 유추해보신 것 자체에 대해서 큰 칭찬을 드리고 싶네요.
추후, 여유가 있으실 때 컴퓨터 구조, 운영 체제 등의 키워드로 학습을 진행해보시면 더 재미있는 공부가 되실 것 같습니다.