비기닝 C [기초부터 차근차근]
- 원서명Beginning C Third Edition (ISBN 1590592530)
- 지은이Ivor Horton
- 옮긴이김기영
- ISBN : 8989975573
- 25,000원
- 2005년 03월 21일 펴냄 (절판)
- 페이퍼백 | 648쪽 | 190*250mm
- 시리즈 : 프로그래밍 언어
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/beginningc)
■ 이 책의 특징
C 언어로 프로그램을 만드는 방법을 체계적이고 자세하게 설명한 입문서. 막 프로그래밍을 시작하는 독자가 넘어야 할 장애물을 쉽게 극복할 수 있도록 꼼꼼하고 알기 쉬운 설명으로 이해를 돕는다. C 언어의 사용방법을 자세한 설명과 예제를 통해 원리부터 철저히 파악하게 하고, 배운 내용을 실제 프로그래밍에 어떻게 적용할 수 있는지 프로그래머의 관점에서 명쾌하게 제시한다. 특히 각 단원에서 제시한 실전 예제에서는 복잡한 프로그램을 작성해보면서 프로그래밍 감각과 재미를 키울 수 있다.
<책 소개>
이 책을 통해 여러분은 뛰어난 C 프로그래머로 변모할 수 있을 것이다. 많은 측면에서 C는 프로그래밍을 배우기에 이상적인 언어다. C는 대단히 간결한 언어이므로, 많은 구문을 배우지 않아도 실제 애플리케이션을 작성할 수 있다.
C가 간단하고 쉽기는 하지만, 그 성능은 어떤 언어와도 견줄 수 없을 만큼 막강해서 전문가에게도 폭넓게 쓰이고 있다. 이러한 성능 때문에 C는 장치 드라이버나 운영체계 구성요소부터 대형 애플리케이션까지, 거의 모든 수준의 프로그래밍에서 쓰이고 있다. C 컴파일러는 거의 모든 종류의 컴퓨터에서 사용할 수 있으므로, 여러분이 어떤 환경에서 C를 공부하더라도 프로그램을 구비하기는 어렵지 않을 것이다. 마지막으로, C에 관한 지식은 객체지향 프로그래밍 언어인 C++을 이해하는 데 정말 많은 도움이 된다.
이 책의 목표는 이제 발돋움을 시작하는 프로그래머가 반드시 뛰어넘어야 할 세가지 장애물을 쉽게 극복할 수 있도록 하는 것이다. 모든 프로그래밍 언어에 스며들어있는 전문용어를 이해하고, 언어 요소의 사용방법을 파악하고(단순히 그것이 무엇인지 아는 것으로는 부족하다), 언어를 실제상황에 적용하는 방법을 습득하는 것이 바로 그것이다.
전문용어는 전문가뿐 아니라 초심자에게도 필수불가결한 정보교환의 수단이므로 절대 무시할 수 없다. 이 책에서는 전문용어를 확실히 이해해서 어떤 상황에서도 적절한 용어를 사용할 수 있게 한다. 따라서 여러분은 프로그래밍 제품에 포함된 도움말을 훨씬 효과적으로 활용할 수 있으며, 프로그래밍 언어에 관련된 자료를 훨씬 쉽게 읽고 공부할 수 있을 것이다.
언어 요소의 구문과 그 효과를 이해하는 것은 언어의 습득에 있어 필수적인 사항임은 두말할 나위도 없다. 그러나 언어 요소의 동작방식과 사용방법을 파악하는 것도 이에 못지 않게 중요하다. 이 책에서는 단순히 코드를 제시하는 것으로 그치지 않고, 실무에 활용할 수 있는 예제를 통해 언어요소와 실제 문제의 관계를 알기 쉽게 밝힌다. 여러분은 직접 이들 예제를 이리저리 바꿔보면서 어떤 효과가 나타나는지 실험해볼 수 있다.
다양한 상황에서 어떻게 프로그래밍하는지 이해하는 것은 하나의 언어요소를 적용하는 방법을 뛰어넘는 문제다. 여러분이 이것을 이해하도록 하기 위해, 이 책에서는 각 단원을 끝내면서 꽤 복잡한 프로그램을 소개해 지금까지 배운 것을 적용해볼 수 있게 했다. 이 프로그램을 통해 여러분은 여러분이 직접 애플리케이션을 개발할 수 있는 능력과 자신감을 키울 수 있을 것이며, 언어 요소를 대형 프로그램에 조합해 적용하는데 필요한 통찰력을 배양할 수 있을 것이다. 그러나 가장 중요한 것은, 여러분이 실제 프로그램을 설계하고 코드를 관리하는데 필요한 개념을 습득할 수 있다는 사실이다.
어떤 프로그래밍 언어를 공부하더라도 세가지 사실은 반드시 염두에 두고 있어야 한다. 첫째, 배울 것은 꽤 많으나, 모두 자기 것으로 만들고 나면 엄청난 만족감을 얻을 수 있다. 둘째, 프로그래밍은 대단히 재미있는 것이므로 언제나 즐긴다는 기분으로 할 수 있다. 셋째, 프로그래밍은 여러분의 생각보다 훨씬 쉬우며, 여러분은 반드시 해낼 수 있다.
<이 책을 어떻게 활용할까>
이 책은 여러분의 적극적인 참여를 유도한다. 따라서 여러분은 이 책을 읽는 즉시 첫번째 프로그램을 만들어보게 된다. 모든 단원에서 여러분은 다양한 프로그램을 통해 이론을 실제에 적용해보는데, 이 예제들이 이 책의 핵심이라 할 수 있다. 필자는 이 책에 있는 모든 예제를 직접 입력하고 실행해볼 것을 권장한다. 언어 요소를 기억하는데 있어 프로그램을 직접 입력하는 것보다 나은 방법이 없기 때문이다.
또 여러분은 각 단원 끝에 있는 연습문제를 모두 풀어봐야 한다. 여러분이 직접 프로그램을 동작하게 할 때, 특히 여러분이 처음부터 직접 만든 프로그램일 때, 무한한 성취감과 실력향상을 느낄 수 있을 것이다.
우리는 서서히 페이스를 끌어올릴 것이지만, 이를 통해 각 주제에 깊숙히 들어갈 수 있는 원동력을 얻는다. 각 단원에서는 상당한 양의 기본지식을 다루므로, 시간을 두고 모든 것을 완전히 이해할 수 있도록 하기 바란다. 코드를 시험해보고 여러분의 생각을 시도하는 것도 학습 과정에서 중요한 부분이다. 프로그램을 수정하고 또 어떤 것을 해볼 수 있는지 생각하라. 정말 재미있는 것은 바로 이것이다. 그리고 여러분이 직접 시도하는 것을 두려워 말라. 여러분이 동작원리를 이해했다면 프로그램에 변화를 주고 어떻게 동작하는지 살펴보기만 하면 된다. 한 단원을 모두 읽고 내용을 모두 파악한 다음 다시 처음으로 되돌아가 예제를 모두 실습해보는 것도 좋은 방법이 될 수 있다.
단원 말미에 있는 프로그램 가운데 어떤 것은 상당히 어려울 것이다. 처음 살펴보고 확실히 이해하지 못해도 그리 걱정할 필요는 없다. 그때까지 배운 것을 좀더 복잡한 문제에 적용하는 것이므로, 처음에는 이해하기 힘든 부분이 있을 것이다. 각 단원의 마지막 프로그램을 도저히 이해하기 힘들면 다음 단원으로 일단 넘어간 뒤 나중에 다시 살펴봐도 좋다. 이해하지 못해도 진도를 나아가는데 있어서는 아무런 문제가 없기 때문이다. 이 프로그램은 이 책을 다 읽은 뒤에도 여러분이 다시 펼쳐 참고할 수 있는 유용한 자료를 제공한다는 데 초점을 맞추고 있다.
<이 책의 대상>
이 책은 쓸모있는 프로그램을 가능한 빠르고 쉽게 작성하는 방법을 가르치는 데 목표를 두고 있다. 이 책이 대상으로 삼고 있는 독자는 다음과 같다.
- 프로그래밍을 전혀 알지 못하지만, C 언어를 공부하면서 프로그래밍을 배우고 싶어하거나 처음부터 C프로그램을 작성하고 싶은 초심자.
- BASIC이나 PASCAL 같은 프로그래밍을 조금 해봤고, 프로그래밍에 숨겨져 있는 개념을 이해하고 싶은 독자. 이런 독자는 C 언어를 통해 프로그래밍 능력을 훨씬 발전시킬 수 있을 것이다.
이 책을 읽을 여러분은 프로그래밍에 관한 사전지식이 전혀 없어도 무방하며, 기초부터 시작해 핵심 개념까지 빠르게 습득할 수 있을 것이다. 이 책을 모두 읽고 나면 C 언어 프로그래밍의 기초를 탄탄히 닦을 수 있으리라 믿는다.
<이 책을 공부할 때 필요한 것>
이 책을 공부하려면 예제를 실행할 수 있도록 C 컴파일러와 라이브러리가 설치된 컴퓨터가 있어야 하며, 소스코드 파일을 편집할 수 있는 텍스트 편집기 프로그램이 있어야 한다. 많은 C 컴파일러가 시장에 출시돼있으며, 인터넷을 통해서도 셰어웨어 버전을 다운로드할 수 있다. C 컴파일러는 미국표준협회(ANSI)에서 승인한 C 표준을 따르는 것을 선택해야 한다. 요즘 나온 대부분의 C++ 컴파일러에서도 C 코드를 컴파일할 수 있으므로, 원한다면 C++ 컴파일러를 사용해도 된다.
프로그램 소스파일을 작성할 때는 메모장이나 Vi같은 평범한 텍스트 편집기를 사용해도 된다. 그러나 C 코드 편집용으로 제작된 편집기가 훨씬 더 쓰기 편하다. Microsoft Word와 같은 워드프로세서는 사용하지 말라. 워드프로세서는 텍스트 안에 서식코드를 집어넣기 때문에 컴파일러가 코드를 제대로 이해하지 못한다.
이 책을 최대한 여러분의 것으로 만들려면, 배우려는 의지, 성공하려는 열망, 이해하기 어렵고 포기하고 싶을 때에도 밀어붙이려는 추진력이 필요하다. 프로그래밍을 처음 공부할 때에는 누구든 앞이 캄캄하기 마련이다. C 언어가 과연 무엇인지 알아내려고 사력을 다하는 자신을 발견했다면, 그대로 밀어붙여라. 안개가 서서히 걷히면서, 왜 이걸 몰랐을까 하는 생각이 들 것이다. 이 과정 조차도 매우 힘겨운 것이라 믿는 독자가 있을지도 모르겠다. 그러나 필자는 여러분이 비교적 단시간에 얼마나 많은 것을 터득할 수 있는지 일단 알게 되면 깜짝 놀랄 것이라 믿는다. 이 책은 여러분이 직접 해나가면서 훌륭한 프로그래머가 될 수 있도록 도움을 아끼지 않을 것이다.
<부록>
각 장별 연습문제와 해답이 들어있는 CD
(https://github.com/AcornPublishing/beginningc)
■ 이 책의 특징
C 언어로 프로그램을 만드는 방법을 체계적이고 자세하게 설명한 입문서. 막 프로그래밍을 시작하는 독자가 넘어야 할 장애물을 쉽게 극복할 수 있도록 꼼꼼하고 알기 쉬운 설명으로 이해를 돕는다. C 언어의 사용방법을 자세한 설명과 예제를 통해 원리부터 철저히 파악하게 하고, 배운 내용을 실제 프로그래밍에 어떻게 적용할 수 있는지 프로그래머의 관점에서 명쾌하게 제시한다. 특히 각 단원에서 제시한 실전 예제에서는 복잡한 프로그램을 작성해보면서 프로그래밍 감각과 재미를 키울 수 있다.
<책 소개>
이 책을 통해 여러분은 뛰어난 C 프로그래머로 변모할 수 있을 것이다. 많은 측면에서 C는 프로그래밍을 배우기에 이상적인 언어다. C는 대단히 간결한 언어이므로, 많은 구문을 배우지 않아도 실제 애플리케이션을 작성할 수 있다.
C가 간단하고 쉽기는 하지만, 그 성능은 어떤 언어와도 견줄 수 없을 만큼 막강해서 전문가에게도 폭넓게 쓰이고 있다. 이러한 성능 때문에 C는 장치 드라이버나 운영체계 구성요소부터 대형 애플리케이션까지, 거의 모든 수준의 프로그래밍에서 쓰이고 있다. C 컴파일러는 거의 모든 종류의 컴퓨터에서 사용할 수 있으므로, 여러분이 어떤 환경에서 C를 공부하더라도 프로그램을 구비하기는 어렵지 않을 것이다. 마지막으로, C에 관한 지식은 객체지향 프로그래밍 언어인 C++을 이해하는 데 정말 많은 도움이 된다.
이 책의 목표는 이제 발돋움을 시작하는 프로그래머가 반드시 뛰어넘어야 할 세가지 장애물을 쉽게 극복할 수 있도록 하는 것이다. 모든 프로그래밍 언어에 스며들어있는 전문용어를 이해하고, 언어 요소의 사용방법을 파악하고(단순히 그것이 무엇인지 아는 것으로는 부족하다), 언어를 실제상황에 적용하는 방법을 습득하는 것이 바로 그것이다.
전문용어는 전문가뿐 아니라 초심자에게도 필수불가결한 정보교환의 수단이므로 절대 무시할 수 없다. 이 책에서는 전문용어를 확실히 이해해서 어떤 상황에서도 적절한 용어를 사용할 수 있게 한다. 따라서 여러분은 프로그래밍 제품에 포함된 도움말을 훨씬 효과적으로 활용할 수 있으며, 프로그래밍 언어에 관련된 자료를 훨씬 쉽게 읽고 공부할 수 있을 것이다.
언어 요소의 구문과 그 효과를 이해하는 것은 언어의 습득에 있어 필수적인 사항임은 두말할 나위도 없다. 그러나 언어 요소의 동작방식과 사용방법을 파악하는 것도 이에 못지 않게 중요하다. 이 책에서는 단순히 코드를 제시하는 것으로 그치지 않고, 실무에 활용할 수 있는 예제를 통해 언어요소와 실제 문제의 관계를 알기 쉽게 밝힌다. 여러분은 직접 이들 예제를 이리저리 바꿔보면서 어떤 효과가 나타나는지 실험해볼 수 있다.
다양한 상황에서 어떻게 프로그래밍하는지 이해하는 것은 하나의 언어요소를 적용하는 방법을 뛰어넘는 문제다. 여러분이 이것을 이해하도록 하기 위해, 이 책에서는 각 단원을 끝내면서 꽤 복잡한 프로그램을 소개해 지금까지 배운 것을 적용해볼 수 있게 했다. 이 프로그램을 통해 여러분은 여러분이 직접 애플리케이션을 개발할 수 있는 능력과 자신감을 키울 수 있을 것이며, 언어 요소를 대형 프로그램에 조합해 적용하는데 필요한 통찰력을 배양할 수 있을 것이다. 그러나 가장 중요한 것은, 여러분이 실제 프로그램을 설계하고 코드를 관리하는데 필요한 개념을 습득할 수 있다는 사실이다.
어떤 프로그래밍 언어를 공부하더라도 세가지 사실은 반드시 염두에 두고 있어야 한다. 첫째, 배울 것은 꽤 많으나, 모두 자기 것으로 만들고 나면 엄청난 만족감을 얻을 수 있다. 둘째, 프로그래밍은 대단히 재미있는 것이므로 언제나 즐긴다는 기분으로 할 수 있다. 셋째, 프로그래밍은 여러분의 생각보다 훨씬 쉬우며, 여러분은 반드시 해낼 수 있다.
<이 책을 어떻게 활용할까>
이 책은 여러분의 적극적인 참여를 유도한다. 따라서 여러분은 이 책을 읽는 즉시 첫번째 프로그램을 만들어보게 된다. 모든 단원에서 여러분은 다양한 프로그램을 통해 이론을 실제에 적용해보는데, 이 예제들이 이 책의 핵심이라 할 수 있다. 필자는 이 책에 있는 모든 예제를 직접 입력하고 실행해볼 것을 권장한다. 언어 요소를 기억하는데 있어 프로그램을 직접 입력하는 것보다 나은 방법이 없기 때문이다.
또 여러분은 각 단원 끝에 있는 연습문제를 모두 풀어봐야 한다. 여러분이 직접 프로그램을 동작하게 할 때, 특히 여러분이 처음부터 직접 만든 프로그램일 때, 무한한 성취감과 실력향상을 느낄 수 있을 것이다.
우리는 서서히 페이스를 끌어올릴 것이지만, 이를 통해 각 주제에 깊숙히 들어갈 수 있는 원동력을 얻는다. 각 단원에서는 상당한 양의 기본지식을 다루므로, 시간을 두고 모든 것을 완전히 이해할 수 있도록 하기 바란다. 코드를 시험해보고 여러분의 생각을 시도하는 것도 학습 과정에서 중요한 부분이다. 프로그램을 수정하고 또 어떤 것을 해볼 수 있는지 생각하라. 정말 재미있는 것은 바로 이것이다. 그리고 여러분이 직접 시도하는 것을 두려워 말라. 여러분이 동작원리를 이해했다면 프로그램에 변화를 주고 어떻게 동작하는지 살펴보기만 하면 된다. 한 단원을 모두 읽고 내용을 모두 파악한 다음 다시 처음으로 되돌아가 예제를 모두 실습해보는 것도 좋은 방법이 될 수 있다.
단원 말미에 있는 프로그램 가운데 어떤 것은 상당히 어려울 것이다. 처음 살펴보고 확실히 이해하지 못해도 그리 걱정할 필요는 없다. 그때까지 배운 것을 좀더 복잡한 문제에 적용하는 것이므로, 처음에는 이해하기 힘든 부분이 있을 것이다. 각 단원의 마지막 프로그램을 도저히 이해하기 힘들면 다음 단원으로 일단 넘어간 뒤 나중에 다시 살펴봐도 좋다. 이해하지 못해도 진도를 나아가는데 있어서는 아무런 문제가 없기 때문이다. 이 프로그램은 이 책을 다 읽은 뒤에도 여러분이 다시 펼쳐 참고할 수 있는 유용한 자료를 제공한다는 데 초점을 맞추고 있다.
<이 책의 대상>
이 책은 쓸모있는 프로그램을 가능한 빠르고 쉽게 작성하는 방법을 가르치는 데 목표를 두고 있다. 이 책이 대상으로 삼고 있는 독자는 다음과 같다.
- 프로그래밍을 전혀 알지 못하지만, C 언어를 공부하면서 프로그래밍을 배우고 싶어하거나 처음부터 C프로그램을 작성하고 싶은 초심자.
- BASIC이나 PASCAL 같은 프로그래밍을 조금 해봤고, 프로그래밍에 숨겨져 있는 개념을 이해하고 싶은 독자. 이런 독자는 C 언어를 통해 프로그래밍 능력을 훨씬 발전시킬 수 있을 것이다.
이 책을 읽을 여러분은 프로그래밍에 관한 사전지식이 전혀 없어도 무방하며, 기초부터 시작해 핵심 개념까지 빠르게 습득할 수 있을 것이다. 이 책을 모두 읽고 나면 C 언어 프로그래밍의 기초를 탄탄히 닦을 수 있으리라 믿는다.
<이 책을 공부할 때 필요한 것>
이 책을 공부하려면 예제를 실행할 수 있도록 C 컴파일러와 라이브러리가 설치된 컴퓨터가 있어야 하며, 소스코드 파일을 편집할 수 있는 텍스트 편집기 프로그램이 있어야 한다. 많은 C 컴파일러가 시장에 출시돼있으며, 인터넷을 통해서도 셰어웨어 버전을 다운로드할 수 있다. C 컴파일러는 미국표준협회(ANSI)에서 승인한 C 표준을 따르는 것을 선택해야 한다. 요즘 나온 대부분의 C++ 컴파일러에서도 C 코드를 컴파일할 수 있으므로, 원한다면 C++ 컴파일러를 사용해도 된다.
프로그램 소스파일을 작성할 때는 메모장이나 Vi같은 평범한 텍스트 편집기를 사용해도 된다. 그러나 C 코드 편집용으로 제작된 편집기가 훨씬 더 쓰기 편하다. Microsoft Word와 같은 워드프로세서는 사용하지 말라. 워드프로세서는 텍스트 안에 서식코드를 집어넣기 때문에 컴파일러가 코드를 제대로 이해하지 못한다.
이 책을 최대한 여러분의 것으로 만들려면, 배우려는 의지, 성공하려는 열망, 이해하기 어렵고 포기하고 싶을 때에도 밀어붙이려는 추진력이 필요하다. 프로그래밍을 처음 공부할 때에는 누구든 앞이 캄캄하기 마련이다. C 언어가 과연 무엇인지 알아내려고 사력을 다하는 자신을 발견했다면, 그대로 밀어붙여라. 안개가 서서히 걷히면서, 왜 이걸 몰랐을까 하는 생각이 들 것이다. 이 과정 조차도 매우 힘겨운 것이라 믿는 독자가 있을지도 모르겠다. 그러나 필자는 여러분이 비교적 단시간에 얼마나 많은 것을 터득할 수 있는지 일단 알게 되면 깜짝 놀랄 것이라 믿는다. 이 책은 여러분이 직접 해나가면서 훌륭한 프로그래머가 될 수 있도록 도움을 아끼지 않을 것이다.
<부록>
각 장별 연습문제와 해답이 들어있는 CD
목차
목차
- Chapter 1 C 프로그래밍
- C 프로그램 만들기
- 편집
- 컴파일
- 링크
- 실행
- 첫번째 프로그램 만들기
- 첫번째 프로그램 편집
- 오류 처리
- 간단한 프로그램 분석
- 주석문
- 전처리기 지시자
- main() 함수 정의
- 키워드
- 함수의 본문
- 정보의 출력
- 인자
- 출력제어문자
- C 프로그램 개발
- 문제의 이해
- 구체적 설계
- 구현
- 테스트
- 함수와 모듈 프로그래밍
- 많이 저지르는 실수
- 기억해 둘 것
- 요약
- 연습문제
- Chapter 2 프로그래밍 첫걸음
- 컴퓨터 메모리
- 변수란 무엇인가?
- 수치를 저장하는 변수
- 정수형 변수
- 변수 이름 붙이기
- 변수의 활용
- 산술문
- 변수와 메모리
- 정수형 변수
- 실수
- 실수형 변수
- 실수를 이용한 나눗셈
- 복잡한 식
- 상수 정의하기
- 용도에 맞는 데이터형 선택
- 산술식에서의 형변환
- 자동 형변환
- 형변환 규칙
- 대입식에서의 형변환
- 다른 수치 데이터형
- 문자형
- 부호없는 정수
- op= 형식의 연산자
- 수학함수
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 3 의사결정
- 의사결정 과정
- 산술 비교
- 논리식
- 기본적인 if문
- if문 확장하기: if-else
- if문에서 코드블록 활용
- 중첩 if문
- 다른 비교연산자
- 논리연산자
- 조건연산자
- 연산자 우선순위 - 무엇이 먼저일까?
- 다중선택
- else-if문을 이용한 다중선택
- switch문
- goto문
- 비트연산자
- op= 형식의 비트연산자
- 비트연산자의 활용
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 4 루프
- 루프
- 증가/감소연산자
- for 루프
- for 루프의 일반적 구문
- 좀더 살펴보는 증가/감소연산자
- 증가연산자
- 전치형식의 증가연산자와 후치형식의 증가연산자
- 감소연산자
- 돌아온 for 루프
- for 루프의 제어변수
- 매개변수가 없는 for 루프
- for 루프로 입력값 제한하기
- 임의의 정수 만들기
- for 루프의 다른 제어옵션
- while 루프
- 중첩 루프
- 중첩 루프와 goto문
- do-while 루프
- continue문
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 5 배열
- 배열이 필요한 이유
- 배열없는 프로그래밍
- 배열이란 무엇인가?
- 배열 사용하기
- 메모리, 다시 생각해 보기
- 배열과 주소
- 배열 초기화
- 배열 크기 구하기
- 다차원 배열
- 다차원 배열의 초기화
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 6 문자열과 텍스트
- 문자열이란?
- 문자열/텍스트 처리 방법
- 문자열을 저장할 변수 선언
- 문자열 작업
- 문자열 연결
- 문자열의 배열
- 문자열 라이브러리 함수
- 라이브러리 함수를 이용한 문자열 복사
- 라이브러리 함수를 이용한 문자열 길이 결정
- 라이브러리 함수를 이용한 문자열 연결
- 문자열 비교
- 문자열 검색
- 문자열 분석과 변환
- 문자 변환
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 7 포인터
- 포인터 들여다보기
- 포인터 선언하기
- 포인터를 통해 값에 접근하기
- 포인터 사용
- 조금 더 살펴보는 연산자 우선순위
- 포인터의 이름
- 배열과 포인터
- 배열과 포인터 실습
- 다차원 배열
- 다차원 배열과 포인터
- 배열요소에 접근하기
- 메모리를 마음대로 주무르자
- 동적 메모리 할당 : malloc() 함수
- 포인터를 이용한 문자열 처리
- 보다 섬세한 문자열 입력
- 포인터의 배열
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 8 프로그램 구조화
- 프로그램의 구조
- 변수의 범위
- 함수
- 함수의 정의
- return문
- 함수 선언
- 포인터와 함수
- 포인터 값을 반환하는 함수
- 함수 안에서 포인터 증가
- 요약
- 연습문제
- Chapter 9 함수의 모든 것
- 함수 포인터
- 함수 포인터 선언
- 함수 포인터의 배열
- 함수 포인터를 함수의 인자로
- 함수 안의 변수
- 정적변수
- 함수 사이의 변수 공유
- 자기자신을 호출하는 함수 - 재귀
- 인자의 개수가 정해지지 않은 함수
- 가변인자 목록의 기본 규칙
- main() 함수
- 프로그램 종료하기
- 함수 라이브러리 - 헤더파일
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 10 필수 입출력 연산
- 입출력 스트림
- 표준 스트림
- 키보드를 통한 입력
- 형식이 있는 키보드 입력
- 입력 형식제어문자열
- 입력 형식문자열에 문자 삽입
- 다양한 실수 입력
- 16진수와 8진수 읽기
- scanf()를 이용한 문자 읽기
- scanf()의 단점
- 키보드를 통한 문자열 입력
- 키보드를 통한 형식없는 입력
- 화면을 통한 출력
- printf()로 화면에 형식있는 출력하기
- 다양한 형식의 출력
- 실수 출력
- 문자 출력
- 문자열 출력
- 형식없는 화면출력
- 프린터를 통한 출력
- 요약
- 연습문제
- Chapter 11 데이터 구조화
- 데이터 구조체 - struct
- 구조체형과 구조체 변수의 정의
- 구조체 멤버에 접근
- 이름없는 구조체
- 구조체의 배열
- 표현식에 들어가는 구조체
- 구조체를 가리키는 포인터
- 구조체의 동적 메모리 할당
- 조금 더 살펴보는 구조체 멤버
- 구조체의 멤버인 구조체
- 구조체 안에서 구조체 선언하기
- 구조체 포인터를 구조체의 멤버로
- 이중 연결리스트
- 구조체에서의 비트필드
- 구조체와 함수
- 구조체를 함수 인자로
- 구조체 포인터를 함수 인자로
- 구조체를 함수 반환값으로
- 예제를 바꿔보자
- 메모리 공유
- 공용체
- 새로운 데이터형 정의
- 구조체와 typedef
- typedef로 코드를 간단히
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 12 많은 데이터 관리하기
- 파일의 개념
- 파일 처리
- 파일 열기
- 파일에 쓰기
- 파일 읽기
- 파일 닫기
- 파일에 문자열 쓰기
- 파일에서 문자열 읽기
- 형식이 있는 파일 입출력
- 형식이 있는 파일 출력
- 형식이 있는 파일 입력
- 오류 처리
- 다른 파일 작업 모드
- 형식이 없는 파일 입출력
- 이진 모드 설정
- 이진 파일 쓰기
- 이진 파일 읽기
- 파일 안을 자유롭게 돌아다니자
- 파일 위치 작업
- 지금 어디에 있는가?
- 파일 위치 설정하기
- 임시 작업파일 활용하기
- 임시 작업파일 만들기
- 고유한 파일이름 만들기
- 프로그램을 만들자
- 문제
- 분석
- 해법
- 요약
- 연습문제
- Chapter 13 지원되는 기능
- 전처리
- 프로그램에 헤더파일 포함시키기
- 외부 변수와 함수
- 프로그램 코드 바꾸기
- 매크로
- 매크로를 함수처럼
- 여러 행에 걸친 전처리기 지시자
- 문자열을 매크로 인자로
- 매크로 실행결과 연결
- 논리 전처리기 지시자
- 조건부 컴파일
- 값을 검사하는 지시자
- 다중 선택
- 표준 전처리 매크로
- 디버그
- 통합 디버거
- 디버그 작업과 전처리기
- assert() 매크로
- 다른 라이브러리 함수들
- 날짜/시간 함수 라이브러리
- 날짜 알아내기
- 요약
- 연습문제
- Appendix A 컴퓨터의 산술연산
- 2진수
- 16진수
- 음의 2진수
- 빅 엔디언 시스템과 리틀 엔디언 시스템
- 실수
- Appendix B ASCII 문자코드
- Appendix C C의 예약어