머리말 ... ⅹⅲ 역자 서문 ... ⅹⅷ 제1부 기초 ... 1 제1장 시작하기 ... 3 1.1 프로그래밍 소개 ... 3 알고리즘 ... 6 알고리즘에서 프로그램까지 ... 11 프로그램 번역 ... 11 1.2 모듈 소개 ... 13 함수 ... 15 main() 함수 ... 17 1.3 printf() 함수 ... 22 1.4 프로그래밍 형태 ... 27 주석 ... 28 1.5 하향식 프로그램 개발 ... 32 모듈과 하향식 설계 ... 36 1.6 일반 프로그래밍 오류 ... 40 1.7 요약 ... 41 제2장 데이터 형, 선언 및 출력 ... 43 2.1 데이터 형 ... 43 정수 ... 43 부동소수점 및 배정밀도 수 ... 44 지수표현 ... 45 문지형 ... 46 예외문자 ... 47 2.2 산술 연산자 ... 50 정수 나눗셈 ... 51 단항 연산자 ... 51 연산자 우선순위 및 결합성 ... 52 2.3 수치 결과 출력 ... 56 형식 출력 ... 58 형식 변환자 ... 61 다른 진수 ... 63 2.4 변수와 선언 ... 69 선언문 ... 72 정의문으로 사용되는 선언문 ... 77 2.5 정수 한정자 ... 83 저장공간 크기 결정 ... 85 2.6 일반 프로그래밍 오류 ... 87 2.7 요약 ... 88 2.8 보충:비트, 바이트, 주소, Number Codes ... 89 워드, 주소 ... 90 2의 보수 ... 91 제3장 치환, 주소, 대화식 입력 ... 93 3.1 치환 ... 94 치환 연산자 ... 98 누적 ... 99 계산 ... 101 3.2 주소 ... 106 주소 저장 ... 108 주소 사용 ... 109 포인터 선언 ... 110 3.3 scanf() 함수 ... 116 3.4 버퍼 입력을 갖는 scanf() ... 125 3.5 기호 상수 ... 128 3.6 일반 프로그래밍 오류 ... 133 3.7 요약 ... 134 제2부 제어 흐름 ... 137 제4장 선택문 ... 139 4.1 관계식 ... 139 논리 연산자 ... 142 수의 정확성 문제 ... 145 4.2 if-else 문 ... 147 복합문 ... 150 단방향 선택 ... 152 if-else 문과 관련된 문제 ... 154 4.3 중첩 if문 ... 159 if-else 체인 ... 160 4.4 switch 문 ... 166 4.5 일반적인 프로그래밍 오류 ... 173 4.6 요약 ... 174 4.7 보충: 오류, 시험, 디버깅 ... 177 컴파일 시간과 실행 시간 오류 ... 177 구문 그리고 논리 오류 ... 178 시험 그리고 디버깅 ... 181 제5장 반복문 ... 185 5.1 while 문 ... 185 5.2 while 반복문 내의 scanf() ... 194 센터널 ... 201 break와 continue 문 ... 204 널 문장 ... 206 5.3 for 문 ... 209 for 반복문 내의 scanf() ... 216 중첩 반복문 ... 217 5.4 do 문 ... 223 유효성 검사 ... 225 5.5 일반적인 프로그래밍 오류 ... 227 5.6 요약 ... 229 5.7 보충: 문자 지향 그래픽 ... 230 동시 문자 출력 ... 231 제3부 함수 ... 237 제6장 자기 자신의 함수 작성 ... 239 6.1 함수 정의와 선언 ... 239 함수의 정의 ... 241 함수의 원형 ... 245 함수 호출 ... 246 문장의 위치 ... 251 스터브 함수 ... 252 매개 변수가 없는 함수들 ... 254 6.2 표준 라이브러리 함수 ... 260 입 / 출력 라이브러리 함수 ... 261 수학 라이브러리 함수 ... 261 형변환 ... 265 문자열 라이브러리 함수 ... 266 그 밖의 루틴들 ... 267 6.3 변수 유효 범위 ... 269 전역 변수들의 잘못된 사용 ... 273 6.4 변수 기억 장소 부류 ... 277 지역 변수 기억 장소 부류 ... 278 전역 변수 기억 장소 부류 ... 282 6.5 주소 전달 ... 287 주소의 전달, 저장, 그리고 사용 ... 288 6.6 관계식 ... 296 6.7 요약 ... 297 6.8 보충: 난수 생성 ... 299 스케일링 ... 301 제4부 복합 데이터 형 ... 303 제7장 배열 ... 305 7.1 일차원 배열 ... 306 배결 값들의 입력과 출력 ... 311 7.2 배열 초기화 ... 316 7.3 배열의 전달 ... 321 7.4 이차원 배열 ... 327 다차원 배열 ... 335 7.5 자주 발생하는 프로그램 에러들 ... 338 7.6 요약 ... 339 7.7 보충 설명: 탐색과 정렬 ... 340 탐색 알고리즘 ... 340 선형탐색 ... 340 이진 탐색 ... 344 Big O 표기법 ... 349 정렬 알고리즘 ... 350 선택정렬 ... 350 교환정렬(버블정렬) ... 355 제8장 배열, 주소와 포인터 ... 359 8.1 포인터로서의 배열명 ... 359 8.2 포인터 연산 ... 367 포인터 초기화 ... 371 8.3 배열의 전달과 사용 ... 372 개선된 포인터 표시법 ... 376 8.4 자주 발생하는 오류 ... 382 8.5 요약 ... 384 제9장 문자열 ... 385 9.1 문자열의 기초 ... 385 문자열의 입력과 출력 ... 386 문자열의 처리 ... 388 문자 단위의 입력 ... 390 9.2 포인터와 라이브러리 함수 ... 395 라이브러리 함수들 ... 400 9.3 문자열 정의와 포인터 배열 ... 405 포인터 배열 ... 409 9.4 문자열 형식화 ... 414 메모리 안에서의 문자열 변환 ... 416 문자열 형식화 ... 417 9.5 자주 발생하는 에러 ... 419 9.6 요약 ... 420 제10장 구조체 ... 421 10.1 단일 구조체 ... 422 10.2 구조체 배열 ... 429 10.3 구조체 전달 및 반환 ... 434 구조체 반환 ... 440 10.4 연결 리스트 ... 443 10.5 동적 메모리 할당 ... 452 동적 연결 리스트 ... 458 10.6 공용체 ... 467 10.7 범하기 쉬운 프로그래밍 오류 ... 470 10.8 요약 ... 471 제5부 추가적인 화제들 ... 473 제11장 파일 처리 ... 475 11.1 파일의 선언, 열기와 닫기 ... 476 파일 열기 ... 477 파일 닫기 ... 481 11.2 파일의 읽기와 쓰기 ... 483 표준 장치 파일 ... 489 다른 장치들 ... 491 11.3 랜덤 파일 접근 ... 494 11.4 파일명 전달과 반환 ... 498 11.5 범하기 쉬운 프로그래밍 오류 ... 502 11.6 요약 ... 503 11.7 보충 자료: 제어코드 ... 505 제12장 부가 특성 ... 509 12.1 부가 기능 ... 509 typedef 선언 문 ... 509 enum 명세자 ... 512 캐스트 ... 515 조건 수식 ... 517 goto 문 ... 519 12.2 비트별 연산자 ... 521 AND 연산자 ... 521 포함 OR 연산자 ... 523 배타 OR 연산자 ... 525 보수 연산자 ... 525 서로 다른 크기의 자료 항목 ... 526 이동 연산자 ... 527 12.3 매크로 ... 529 12.4 명령 행 인자 ... 532 12.5 요약 ... 540 제6부 C++ 소개 ... 543 제13장 C++ 소개 ... 545 13.1 객체기반 프로그래밍과 추상 데이터형 ... 545 추상 데이터형 ... 546 C++의 주석문 ... 553 13.2 C++의 입출력 ... 555 C++의 출력 ... 555 형식 출력 ... 557 C++에서 입력 ... 562 13.3 C++의 함수 ... 567 디폴트 인자 ... 567 함수 중복(함수 이름 재사용) ... 568 함수 템플릿 ... 570 내장 함수 ... 574 참조 인자 ... 575 참조 변수의 사용 ... 578 참조형과 포인터 ... 581 13.4 추상 데이터형(클래스) ... 583 클래스 생성 ... 583 용어 ... 590 13.5 생성자와 소멸자 ... 593 생성자 호출 ... 597 중복 생성자 및 내장 생성자 ... 598 소멸자 ... 602 객체 배열 ... 602 13.6 응용예 ... 606 13.7 일반적인 프로그래밍 오류 ... 612 13.8 요약 ... 612 제14장 추가적인 클래스 기능 ... 617 14.1 치환 ... 617 복사 생성자 ... 621 베이스 / 멤버 초기화 ... 624 14.2 추가적인 클래스 특징 ... 626 클래스 유효범위 ... 626 정적 클래스 멤버 ... 628 this 포인터 ... 632 프렌드 함수 ... 635 14.3 연산자 함수 ... 637 치환 연산자 ... 646 14.4 데이터형 변환 ... 650 내장형에서 내장형으로의 변환 ... 650 내장형에서 사용자 정의 데이터형(클래스)으로의 변환 ... 651 사용자 정의 데이터형(클래스)에서 내장형으로의 변환 ... 653 사용자 정의 데이터형(클래스)에서 사용자 정의 데이터형(클래스)으로의 변환 ... 655 14.5 클래스 상속 ... 660 접근 명세 ... 663 예제 ... 664 다형성 ... 668 14.6 일반적인 프로그래밍 오류 ... 674 14.7 요약 ... 675 부록 ... 679 A. 연산자 우선순위 테이블 ... 681 B. ASCⅡ 코드표 ... 683 C. 입력, 출력, 표준오류 방향 제어 ... 685 D. 표준 C라이브러리 ... 688 E. C++ 표준 템플릿 라이브러리 ... 695 F. Visual C++ Version 6.0 사용법 ... 701 G. C++ Builder 사용법 ... 710