초보자의 눈높이에 딱 맞는 C 언어 입문서!
C 언어는 여러 프로그래밍 언어 중 가장 널리 사용되면서도 오래된 언어 중 하나다. 하지만 초보자가 접근하기에 결코 쉬운 언어가 아니다. 기본 개념을 이해하기도 벅찬데, 처음부터 두껍고 딱딱한 책으로 시작한다면 중간에 책을 덮을 확률이 매우 높다.
이 책은 프로그래밍을 모르는 초보자도 처음부터 끝까지 완독할 수 있도록 분량과 난이도를 맞추었다. 일상 생활의 비유를 들어 개념을 쉽게 설명하면서도, “왜 그럴까”, “왜 이렇게 사용해야만 하는가”에 대한 깊이 있는 설명을 빠트리지 않았다. 포인터나 동적 메모리 같은 추상적이고 낯선 개념을 친근하게 받아들일 수 있도록 175개의 컬러 일러스트를 수록한 것도 특징이다. 또한, 단계별 미션 문제를 해결하면서, 스스로 생각해보고 자신의 생각을 C 프로그램으로 작성할 수 있도록 구성하였다.
C 언어를 처음 배우는 사람부터 중간에 포기했던 사람, 다시 개념을 복습하고 싶은 사람까지 누구나 쉽고 재밌게 C 언어를 경험할 수 있도록 이 책이 안내할 것이다.
1장 C 프로그래밍 속으로
1.1 C 프로그래밍은 어디서부터 어떻게 시작하나요
1.2 통합 개발 환경, 비주얼 스튜디오 설치하기
1.3 나의 첫 C 프로그래밍: Hello, World 출력하기
1.4 컴파일과 실행: 프로그램의 일생
2장 기억 상자 만들기 - 변수
2.1 숫자 상자 만들기: 자료형
2.2 메모리 상자에 숫자 저장하기: 변수 선언과 초기화
2.3 메모리 상자에서 숫자 꺼내어 사용하기: 서식 지정자
2.4 중복 사용 피하기: 변수 선언과 동시에 초기화
2.5 컴퓨터는 얼마나 큰 숫자를 저장할 수 있을까? 변수의 저장 범위
2.6 내 키를 정확하게 저장하기: 실수 자료형
2.7 문자 상자 만들기: 문자 자료형과 아스키 코드
2.8 문자를 숫자로 바꾸기: 서식 지정자 %c와 %d
2.9 고장 난 메모리 상자: 변수 사용 시 주의점
2.10 이박사와 함께 생각하는 C 언어: 변수와 뉴턴의 운동법칙
3장 마법 상자 만들기 - 함수
3.1 구조적 프로그래밍과 함수
3.2 함수를 사용하는 이유
3.3 함수의 선언
3.4 함수의 호출
3.5 함수의 결과 값 돌려주기
3.6 들어 오고 나가는 게 없을 때 사용하는 void
3.7 이박사와 함께 생각하는 C 언어: 함수와 레스토랑 사장님
3.8 지역 변수와 전역 변수
4장 컴퓨터는 더하기, 빼기 또 무엇을 할까 - 연산자
4.1 연산자란 무엇일까요?
4.2 대입 또는 할당 연산자 =
4.3 산술 연산자 +, -, *, /, %, ++, --
4.4 관계 연산자 >, <, >=, <=, ==, !=
4.5 논리 연산자 &&, ||, !
4.6 이박사와 함께 생각하는 C 언어 Ⅰ: 반도체 회로 설계
4.7 조건 연산자
4.8 비트 연산자 &, |, ^, ~, <<, >>
4.9 이박사와 함께 생각하는 C 언어 Ⅱ: 모든 방의 불을 제어하자
5장 여자는 1번 방으로 남자는 2번 방으로 - 조건문
5.1 if 조건문: 프로그래밍 흐름의 갈림길, 참이면 A
5.2 if 조건문과 중괄호 { } 사용하기
5.3 참이면 A, 거짓이면 B: if ~ else
5.4 여러 갈래길 사용하기: if ~ else if ~ else
5.5 갈래길 빠르게 나누기: switch 분기문
5.6 if 조건문과 switch 분기문 서로 호환하기
5.7 switch 분기문 빠져나오기: break
5.8 break 유용하게 사용하기
6장 빛의 속도로 일을 처리하자 - 반복문
6.1 반복되는 일을 수행하려면
6.2 ~번 반복할 때는 for 반복문
6.3 이중 for 반복문
6.4 ~까지 반복할 때는 while 반복문
6.5 적어도 한 번 이상 반복할 때는 do-while 반복문
6.6 반복문과 문장 제어
6.7 이박사와 함께 생각하는 C 언어: 코딩의 질
7장 우리 학교 학생들 정보 저장하기 - 배열
7.1 배열이란
7.2 배열의 선언과 접근
7.3 배열의 확장: 2차원 배열
7.4 배열의 초기화
7.5 변수의 메모리 크기를 알려주는 sizeof 연산자
7.6 다차원 배열의 초기화
7.7 배열의 접근 방법
7.8 배열의 복사
7.9 배열을 이용한 문자열 저장
8장 진짜 C 언어의 시작 - 포인터
8.1 주소를 저장하는 변수: 포인터
8.2 포인터 변수를 사용하는 방법
8.3 포인터 변수의 메모리 크기
8.4 포인터가 존재하는 이유
8.5 포인터 배열
8.6 포인터 주소 값 연산
9장 더 깊이 포인터 속으로
9.1 포인터 변수
9.2 문자열과 포인터 배열
9.3 2차원 배열과 주소
9.4 2차원 배열의 주소 연산
9.5 2차원 배열을 이용하는 방법
9.6 포인터 배열을 이용하는 방법
9.7 포인터의 포인터
9.8 포인터의 활용
9.9 이박사와 함께 생각하는 C 언어: 배열은 왜 0부터 시작할까?
10장 수제 메모리 사용하기 – 동적 메모리 할당
10.1 과학, 공학에서의 다이내믹이란
10.2 문자열 그리고 왜 동적 메모리 할당인가
10.3 메모리 사용과 지역/전역 변수, 동적 메모리 할당에 대한 고찰
10.4 이박사와 함께 생각하는 C 언어: 네 가지 메모리 저장소 둘러보기
11장 내가 만드는 변수들 모임 - 구조체
11.1 왜 구조체인가? 그리고 구조체의 필요성
11.2 구조체 사용하기
11.3 구조체 복사하기
11.4 구조체 포인터 변수 선언하기
11.5 이박사와 함께 생각하는 C 언어: 정보의 저장과 기호 상수
12장 정보를 기차처럼 연결하기 – 구조체와 연결 리스트
12.1 정보를 모아서 저장히기: 구조체 배열
12.2 구조체 배열의 메모리 관리 필요성 및 배열의 한계
12.3 연결 리스트의 필요성
12.4 typedef 키워드로 구조체 별명 짓기
13장 프로그래밍의 오류를 수정하기 - 디버깅
13.1 디버깅이란
13.2 printf() 함수를 사용해서 디버깅하기
13.3 마치는 글
부록 1: Xcode 설치하고 실행하기
부록 2: Dev-C++ 설치하고 실행하기
독자의견 남기기