제01장 준비
C는 아마추어와 직업 프로그래머 모두에게 인기 있는 강력한 프로그램이 언어다. 이 장에서는 이처럼 강력하고 인기 있는 C 언어를 제대로 배우고 사용할 수 있도록 독자를 준비시킨다. 또한 C 언어 사용 능력을 최대한 향상시킬 수 있는 몇 가지 개발 환경을 소개한다.
제02장 C 첫걸음
이 장에서는 간단한 프로그램 하나를 예제로 사용하여 그것이 무엇을 하는지 설명한다. 동시에 C의 몇 가지 기본적인 특징들을 살펴본다.
제03장 데이터와 C
이 장에서는 C에서 사용하는 기본 데이터형인 정수형과 부동소수점형의 차이에 대해 알아본다. 그러한 데이터형들이 무엇을 말하는지, 어떻게 선언하는지, 그리고 언제 어떻게 사용하는지 설명한다. 또한, 상수와 변수의 차이에 대해서도 설명한다. 그리고 보너스로 대화형 프로그램과 처음으로 만난다.
제04장 문자열과 입출력 포맷
이 장에서는 입력과 출력에 초점을 맞춘다. 프로그램을 대화식으로 만들고, 문자열을 사용함으로써 프로그램에 개성을 부여할 것이다. 또한, 편리한 C의 두 입출력 함수인, printf( )와 scanf( )에 대해 자세히 설명한다.
제05장 연산자, 수식, 문
지금까지 데이터를 표현하는 방법을 살펴보았다. 이제는 데이터를 처리하는 방법을 배울 차례다. C는 데이터를 처리하는 풍부한 연산자를 제공한다. 산술 계산, 값 비교, 변수 수정, 관계들의 논리적 결합 등을 할 수 있다. 우선 기본적인 산술 계산(덧셈, 뺄셈, 곱샘, 나눗셈)부터 시작하자.
제06장 C의 제어 명령문 : 루프
이 장에서는 while 루프와, 또 다른 두 루프 구조인 for와 do while에 대해 자세하게 설명한다. 또한 배열과 함수에 대해서도 설명한다.
제07장 C의 제어 명령문 : 분기와 점프
이 장에서는 if와 switch와 같은 분기 구조에 대해 배운다. 분기 구조가 검사하는 조건에 따라 프로그램이 취할 동작들을 선택할 수 있다. 또한, 이 장에서는 논리 연산자를 소개한다. 논리 연산자는 while이나 if 조건에서 하나 이상의 관계 수식을 검사할 수 있게 한다.
제08장 문자 입출력과 입력 유효성 검사
입력과 출력이라는 단어는, 컴퓨터 분야의 다양한 상황에서 쓰인다. 키보드, 디스크 드라이브, 레이저 프린터와 같은 장치들을 입력 장치 또는 출력 장치라고 한다, 또한 입력과 출력에 사용되는 데이터라는 말도 사용하고, 입력과 출력을 수행하는 함수라는 말도 사용한다. 이 장에서는 입력과 출력에 사용되는 함수들을 집중적으로 살펴보다.
제09장 함수
프로그램은 어떻게 구성하는가? C의 설계 철학은, 함수를 건축물의 벽돌처럼 사용하는 것이다. 이미 printf( ), scanf( ), getchar( ), putchar( ), strlen( ) 같은 함수들을 사용하기 위해 표준 C 라이브러리에 의존해 왔다. 이제 좀더 적극적으로 자신의 함수를 만들어 보자.
제10장 배열과 포인터
이 장에서는 배열을 좀더 자세하게 설명한다. 특별히, 배열을 처리하는 함수를 작성하는 방법을 배운다. 그와 같은 함수들은 모듈식 프로그래밍의 장점을 배열로까지 확장한다. 이 작업을 통하여, 배열과 포인터의 관계에 대해 이해할 수 있다.
제11장 문자열과 문자열 함수
문자열은 C에서 가장 중요하고 유용한 데이터형 중 하나다. C 라이브러리는 문자열 읽기, 문자열 쓰기, 문자열 복사, 문자열 비교, 문자열 결합, 문자열 검색 등가 같은 다양한 범위의 함수들을 제공한다. 이 장은 독자의 프로그래밍 기술에 이와 같은 능력들을 추가할 것이다.
제12장 기억 부류, 연계, 메모리 관리
C의 강점 중 하나는 프로그래머가 프로그램의 세밀한 부분까지 제어할 수 있다는 것이다. C 의 메모리 관리 시스템은 함수가 어떤 변수들을 사용할 수 있고, 프로그램에서 어떤 변수가 얼마나 오래 존재할 수 있는지를 사용자가 결정할 수 있다. 메모리 관리는 프로그램 설계에서 반드시 고려해야 하는 요소다.
제13장 파일 입출력
오늘날의 컴퓨터 시스템에서 파일들의 사용은 필수적이다. 파일들은 프로그램, 문서, 데이터, 서신, 그래픽, 그밖에도 수없이 많은 종류의 정보를 저장하는 데 사용된다. 프로그래머는 파일을 생성하고, 파일에 쓰고, 파일을 읽는 프로그램을 작성해야 한다. 이 장에서는 파일을 사용하는 방법을 설명한다.
제14장 구조체와 그 밖의 데이터형
이 장에서는 구조체를 자세하게 소개한다. 구조체가 필요한 이유, 구조체를 만드는 방법, 구조체를 사용하는 방법을 알아보기 위해, 구체적인 예제를 들어 설명한다.
제15장 비트 조작
이 장에서는 비트, 바이트, 2진수 표기, 8진수 표기, 16진수 표기에 대해 약간의 배경을 설명하고 나서, C의 비트 연산 기능을 설명한다.
제16장 C 전처리기와 C 라이브러리
C 언어 자체는 키워드, 수식, 명령문들과 이들을 사용하는 규칙 위에 세워져 있다. 그러나 ANSI C 표준은 C 언어를 단순히 설명하는 것에 그치지 않는다. ANSI C 표준은 C 전처리기를 어떻게 실행하는지, 어떤 함수들이 표준 C 라이브러리를 구성하는지, 이 함수들이 어떻게 동작하는지를 상세히 설명한다.
제17장 고급 데이터 표현
이 장에서는 데이터형을 설계하는 과정과 데이터 표현에 알고리즘을 적용하는 과정을 설명한다. 큐(queue), 리스트(list), 바이너리 검색 트리(binary search tree)와 같은 데이터형들을 만나게 될 것이다. 또한 추상 데이터형(ADT)에 대한 개념도 함께 설명한다.