책소개
이 책은 C 문법서가 아니기 때문에, 각 장이 왜 이런 기능이 필요할까? 에서부터 시작하고 있습니다. 왜 이런 기능이 필요한지, 왜 그렇게 사용할 수밖에 없는지를 알고 나면 개념 을 받아들이고 이해하기 쉬워집니다. 또한, 이 책은 핵심을 꿰뚫는 풍부하고 다양한 그림 을 통해서 C의 기능들을 설명하고 있다. 개념 설명 후에는 사용 형식과 다양한 예제 코드, 주의 사항들을 통해서 배운 개념을 자기 것으로 만들 수 있도록 단계별로 확장해 나간다. 소단원 별로 비교적 쉽고 간단한 객관식 문제를 제시하여, 배운 내용 중 핵심 키워드를 다시 생각해볼 수 있도록 구성하였다. 또한 장 별로 제시된 다양한 형식의 연습문제(객관식, OX, 단답형, 주관식, 프로그 래밍 문제 등)를 통해서 C 언어의 여러 가지 기능에 대한 이해도를 스스로 판단할 수 있을 것이다.
목차
CHAPTER 1 C 언어와 프로그래밍 개요 001·1.1 C 언어 소개 003 1.1.1 프로그래밍의 개념 003 1.1.2 C 언어의 특징 007·1.2 C 프로그램 개발 012 1.2.1 일반적인 C 프로그램 개발 과정 012 1.2.2 Visual Studio를 이용한 C 프로그램 개발 과정 015 1.2.3 Visual Studio를 이용한 C 프로그램 개발 과정 019■■ Summary 031■■ Exercise 032■■ Programming Assignment 035CHAPTER 2 C 프로그램의 기본 037·2.1 C 프로그램의 구성 요소 039 2.1.1 주석 039 2.1.2 main 함수 041 2.1.3 출력 047·2.2 C 언어의 입력과 출력 050 2.2.1 변수 050 2.2.2 printf 함수 052 2.2.3 scanf 함수 058■■ Summary 064■■ Exercise 065■■ Programming Assignment 070CHAPTER 3 데이터형과 변수 073·3.1 데이터형 075 3.1.1 데이터형의 기본 개념 075 3.1.2 정수형 079 3.1.3 문자형 088 3.1.4 실수형 092·3.2 변수와 상수 096 3.2.1 변수 096 3.2.2 상수 105■■ Summary 118■■ Exercise 119■■ Programming Assignment 124CHAPTER 4 연산자 127·4.1 연산자의 기본 개념 129 4.1.1 수식 129 4.1.2 연산자와 피연산자 130·4.2 연산자의 종류 132 4.2.1 산술 연산자 132 4.2.2 증감 연산자 139 4.2.3 대입 연산자 142 4.2.4 관계 연산자 147 4.2.5 논리 연산자 150 4.2.6 비트 연산자 154 4.2.7 그 밖의 연산자 161·4.3 연산자의 우선순위와 결합 규칙 170 4.3.1 연산자의 우선순위 170 4.3.2 연산자의 결합 규칙 172■■ Summary 174■■ Exercise 175■■ Programming Assignment 179CHAPTER 5 제어문 185·5.1 조건문 187 5.1.1 if 188 5.1.2 switch 201·5.2 반복문 208 5.2.1 반복문의 필요성 208 5.2.2 for 209 5.2.3 while 218 5.2.4 do while 222 5.2.5 무한 루프 226·5.3 분기문 228 5.3.1 break 228 5.3.2 continue 233 5.3.3 goto 235CHAPTER 6 함수 255·6.1 함수의 개념 257 6.1.1 함수의 필요성 257 6.1.2 함수의 종류 259·6.2 함수의 기본 261 6.2.1 함수의 정의 261 6.2.2 함수의 호출 270 6.2.3 함수의 선언 287·6.3 지역 변수와 전역 변수 292 6.3.1 지역 변수 293 6.3.2 전역 변수 300 6.3.3 변수의 영역 규칙 303·6.4 표준 C 라이브러리 함수 306■■ Summary 311■■ Exercise 312■■ Programming Assignment 318CHAPTER 7 배열 325·7.1 배열의 기본 327 7.1.1 배열의 개념 327 7.1.2 배열의 선언 329 7.1.3 배열의 초기화 334 7.1.4 배열의 사용 338·7.2 배열의 활용 345 7.2.1 배열의 탐색과 정렬 345 7.2.2 다차원 배열 352 7.2.3 함수의 인자로 배열 전달하기 359■■ Summary 364■■ Exercise 365■■ Programming Assignment 370CHAPTER 8 포인터 377·8.1 포인터의 기본 379 8.1.1 포인터의 개념 379 8.1.2 포인터의 선언 및 초기화 380 8.1.3 포인터의 사용 387 8.1.4 포인터의 용도 389 8.1.5 포인터 사용 시 주의 사항 393 8.1.6 const 포인터 396·8.2 포인터의 활용 399 8.2.1 배열과 포인터의 관계 399 8.2.2 여러 가지 포인터의 선언 412·8.3 함수와 포인터 417 8.3.1 함수의 인자 전달 방법 417 8.3.2 값에 의한 전달 417 8.3.3 포인터에 의한 전달 419 8.3.4 배열의 전달 424■■ Summary 428■■ Exercise 429■■ Programming Assignment 434CHAPTER 9 문자열 441·9.1 문자 배열 443 9.1.1 문자와 문자열 443 9.1.2 문자 배열의 선언 및 초기화 444 9.1.3 문자 배열의 사용 446·9.2 표준 C의 문자열 처리 함수 448 9.2.1 문자열의 길이 구하기 450 9.2.2 문자열의 복사 452 9.2.3 문자열의 비교 456 9.2.4 문자열의 연결 458 9.2.5 문자열의 검색 460 9.2.6 문자열의 토큰 나누기 462 9.2.7 문자열의 입출력 464·9.3 문자열 포인터 468 9.3.1 char*형의 문자열 포인터 468 9.3.2 const char*형의 문자열 포인터 473 9.3.3 문자열 사용을 위한 가이드라인 476·9.4 문자열의 배열 480 9.4.1 2차원 문자 배열 480 9.4.2 문자열 포인터 배열 484■■ Summary 488■■ Exercise 489■■ Programming Assignment 494CHAPTER 10 구조체 501·10.1 구조체의 기본 503 10.1.1 구조체의 개념 503 10.1.2 구조체의 정의 504 10.1.3 구조체 변수의 선언 및 초기화 508 10.1.4 구조체 변수의 사용 510 10.1.5 구조체 변수 간의 초기화와 대입 513 10.1.6 구조체 변수의 비교 515 10.1.7 typedef 517·10.2 구조체의 활용 521 10.2.1 구조체 배열 522 10.2.2 구조체 포인터 526 10.2.3 함수의 인자로 구조체 전달하기 532 10.2.4 비트필드 540 10.2.5 구조체의 멤버로 다른 구조체 변수 사용하기 544·10.3 공용체와 열거체 546 10.3.1 열거체 546 10.3.2 공용체 551■■ Summary 557■■ Exercise 558■■ Programming Assignment 565CHAPTER 11 변수, 함수의 활용 및 동적 메모리 573·11.1 변수의 활용 575 11.1.1 변수의 특성 575 11.1.2 auto와 register 577 11.1.3 extern 578 11.1.4 static 583·11.2 함수의 활용 593 11.2.1 재귀 함수 593 11.2.2 함수 포인터 599·11.3 동적 메모리 619 11.3.1 동적 메모리의 개념 619 11.3.2 동적 메모리의 필요성 620 11.3.3 동적 메모리의 할당과 해제 622 11.3.4 동적 메모리 사용 시 주의 사항 627 11.3.5 동적 메모리의 활용 631 11.3.6 동적 메모리 관리 함수 635■■ Summary 636■■ Exercise 637■■ Programming Assignment 642CHAPTER 12 표준 입출력과 파일 입출력 649·12.1 표준 입출력 651 12.1.1 스트림 기반의 입출력 651 12.1.2 printf 함수 다시 보기 655 12.1.3 scanf 함수 다시 보기 659 12.1.4 형식이 없는 표준 스트림 입출력 함수 667·12.2 파일 입출력 668 12.2.1 파일 입출력의 개요 669 12.2.2 텍스트 파일 입출력 675 12.2.3 2진 파일 입출력 686■■ Summary 694■■ Exercise 695■■ Programming Assignment 701CHAPTER 13 전처리기와 분할 컴파일 707·13.1 전처리기 709 13.1.1 매크로 710 13.1.2 조건부 컴파일 728·13.2 분할 컴파일 738 13.2.1 #include문 739 13.2.2 소스 파일과 헤더 파일의 구성 741 13.2.3 헤더 파일의 중복 포함 막기 753 13.2.4 헤더 파일과 소스 파일의 구성 756·13.3 main 함수의 매개변수 757■■ Summary 761■■ Exercise 762■■ Programming Assignment 768INDEX 773