2023.03.02. 내용 수정 안녕하세요? 이화입니다. 저번에 못 쓴 내용을 마저 써 보겠습니다. 제목이 좀 바뀌었죠? 내용이 바뀌니까 자연스레 제목이 부자연스러워져서 조금 바뀌었지만, 변수와 포인터란 무엇인가 기초편에서 이어지는 내용입니다. 이 글은 다음에 해당하는 분들을 위한 글입니다. 변수와 포인터란 무엇인가 기초편을 읽었다. 그리고 이 글은 다음 내용을 담고 있습니다. 배열이란 무엇인가 배열과 포인터에는 무슨 관계가 있는가 배열을 함수의 매개변수로 넘겨주는 방법 포인터에 수를 더하고 빼는 건 무슨 의미인가 자. 시작해 볼게요. 1. 배열이란 무엇인가 이번엔 배열이 무엇인지부터 시작합니다. 여러분은 연속된 값을 표현하기 위해 여럿 선언한 적이 있을 겁니다. 아래 코드처럼요. int a, b, c,..
개발하다 다른 분들에게 이 코드가 왜 작동하지 않는지 질문하고 싶어질 때가 있습니다. 하지만, 주변에 다른 분들이 없다면, 다 바쁘신 거 같다면 어떻게 해야 할까요? 그런 분들을 위해 고무 오리가 필요합니다. 고무 오리가 아니어도 괜찮아요. 작은 인형이나, 상상 속의 무언가라도 준비하세요. 그리고 그것(여기선 오리라고 할게요)에게 코드를 최대한 자세히 설명합니다. 이 코드는 무엇을 위한 코드인데, 이 줄은 어떤 역할을 하고… 최대한 오리가 이해할 수 있도록 한 줄 한 줄 설명해봅시다. 그러다 보면 코드의 문제점을 깨닫게 됩니다. 이런 방법을 고무 오리 디버깅 또는 러버 덕킹(Rubber Ducking)이라고 합니다. 코드를 설명하는 과정에서 다시금 코드의 흐름을 파악하고, 버그를 수정하게 됩니다. 꽤 오..
2023.03.02. 내용 수정 안녕하세요? 이화입니다. 오늘은 포인터에 대한 내용을 써 볼 거에요. C언어를 처음 배우시는 분 중에는 포인터가 정말 어렵고, 큰 벽이라고 생각하시는 분도 있습니다. 하지만 포인터는 쉽습니다. 거짓말 아니고 인터넷에서 겁 주는 것보다는 정말로 간단한 개념입니다. 그렇지만 포인터를 배우면서 자칫 오개념을 얻거나 하는 경우가 많기에, 포인터에 대한 설명은 최대한 단순화되거나, 너무 복잡해지는 경우가 많다고 생각합니다. 이 글을 쓰며 저는 최대한 오개념을 배제하고, 컴퓨터 개론에 관한 내용을 첨가하면서 쉽지만 깊이있는 글을 쓰려고 노력해 보았습니다. 포인터는 응용이 어렵지 이론은 큰 어려움이 없다고 생각합니다. 이 글이 포인터를 통해 심화된 무언가를 할 때 이론적 기반을 충분히..