🚨2:58에 편집 실수가 있었습니다 ㅠㅠ 움직이는 점선으로 강조된 pi가 아닌, 그 아래 p0을 보시면 돼요.

포인터가 뭐고 왜 쓰나요?

C언어 클래스의 사실상 최종보스 🐉 포인터!

꼭 C언어를 사용하는 사람이 아니더라도, 포인터에 대해 알고 있으면
컴퓨터 프로그래밍을 이해하는데 도움이 될 수 있습니다.

포인터가 무엇이며 어떻게 사용되는지 알아보고
이를 활용한 LinkedList의 원리도 알아보기로 해요!




🎬 영상 주요 포인트

⚓️ 포인터의 필요와 개념

프로그래밍이 발달하고 개발환경이 좋아지면서 오늘날 개발자들은 컴퓨터 내부에서 돌아가는 일들에 대한 깊은 이해 없이도 어느 정도의 소프트웨어들은 무난하게 만들어낼 수 있게 됐어요. 프로그래밍에 사용하는 언어도 기계어로부터 점점 멀어져서 사람에게 보다 친숙하고, 간결하면서도 강력한 언어들로 손쉽게 프로그래밍을 할 수가 있게 됐죠. 하지만 그런 언어들일수록, 마치 매장을 전담한 매니저처럼 기계에서 세부적으로 돌아가는 일들을 언어를 쓰는 개발자로부터 감춰놓게 돼요. 이런 Low level에 대한 지식 없이도 개발자 일을 할 수 있지만 시니어 개발자, 특히 높은 연봉을 받는 고급 개발자로 성장하는건 컴퓨터에 대한 이 세부 지식 없이는 불가능해요. 이를테면 메모리가 어떻게 운영되는가 하는 것 말이죠. ... 이에 사용되는 수단 중 하나가 포인터에요. 포인터는 내가 컴퓨터의 메모리에 보다 직접적으로 접근해서 이를 제어할 수 있도록 해주는 도구, 비유하자면 기다란 집게 같은거라고 보시면 돼요. 메모리를 관리해주는 Golang이나 Rust같은 언어들도 사용자가 이를 직접 할 수 있도록 포인터 기능을 제공해요. C를 배우는 중이라면 말할 것도 없지만 자바나 파이썬처럼 포인터가 없는 언어부터 배우시는 분들도 C 언어의 포인터가 무엇이고 어떻게 동작하는지 이 영상을 통해 얄팍하게나마 알아두고 나면 컴퓨터를 알아가는데 분명 도움이 될 거에요.

🔢 변수와 메모리

변수에 쓰이는 메모리는 어떤 자료형이냐에 따라 크기가 달라요. 정수는 1이든 100의 자리 수든 천만 자리 수든 4바이트(32비트)를 차지하죠. 값이랑은 상관없어요. 반면 double은 1.0이란 값에도 8바이트를 차지해요. 컴퓨터의 모든 데이터는 수많은 0과 1, 즉 ON과 OFF로 이뤄졌어요. 메모리의 칸 하나하나가 ON 또는 OFF가 되어 2진수를 만들죠. C에는 없지만 True와 False를 나타내는 참/거짓 자료형은 실제로는 기계마다 다르지만 이론적으로는 칸 하나, 즉 1비트면 충분하겠죠? 온-오프, 홀짝이니까요. 요일이라는 자료형이 있다고 쳐요. 일요일부터 토요일까지 7가지 값이 있겠죠. 2의 3승이 8이니까, 칸 세 개면 충분히 나타낼 수 있네요. 칸 세 개의 조합으로 어떤 요일인지를 나타내기 때문에 월요일이든 목요일이든 요일 변수는 3비트를 차지하게 되는거에요. 포인터를 지정할 때 이렇게 자료형도 굳이 명기하는 건 이 때문이에요. 이 포인터가 가리키는 건 integer니까 이 주소로부터 4바이트, 즉 32개 비트들을 읽어내라는 이야기죠.

⌨️ 영상에서 코드 예제와 함께 살펴보세요!


🍿 더 자세한 내용은 영상에서 보실 수 있습니다.





관련 태그의 다른 영상들

스코프가 뭔가요?
지역/전역변수의 차이, 자바스크립트의 const, let, var에 대해서도 확실하게 알아봅시다.
# scope
# 변수
# memory
포인터가 뭐고 왜 쓰는건가요?
컴공 저학년의 악몽! 더 잘 알면 보다 쉽게 정복할 수 있어요.
# pointer
# c언어
# memory
가비지 컬렉터가 뭐하는 건가요?
메모리의 스마트한 청소부 가비지 컬렉터에 대해 알아봅니다.
# 가비지컬렉터
# memory
...