목차 일부
1. C 프로그래밍 입문 = 17
1.1. C 언어 소개 = 17
1.2. 실습환경 구성(Visual Studio) = 18
1.3. 첫 번째 예제, HelloWorld! = 23
1.4. 프로그램의 기본 요소 = 28
1.4.1. #include 전처리기 = 28
1.4.2. 스코프(Scope)와 구문 = 29
...
더보기
목차 전체
1. C 프로그래밍 입문 = 17
1.1. C 언어 소개 = 17
1.2. 실습환경 구성(Visual Studio) = 18
1.3. 첫 번째 예제, HelloWorld! = 23
1.4. 프로그램의 기본 요소 = 28
1.4.1. #include 전처리기 = 28
1.4.2. 스코프(Scope)와 구문 = 29
1.4.3. 함수 = 30
1.4.4. 빌드 타임에 벌어지는 일들 = 32
2. 자료형 = 35
2.1. 변수와 상수 = 36
2.1.1. C 언어의 자료형 = 37
2.1.2. 보수와 음수 표현 = 38
2.1.3. 부호비트와 자료비트 그리고 표현범위 = 40
2.2. 정수 자료형과 변수, 상수 = 42
2.2.1. char와 ASCII코드 = 43
2.2.2. short, wchar_t = 45
2.2.3. int와 long = 45
2.3. 실수 자료형 = 47
2.3.1. float = 49
2.3.2. double = 49
2.4. 문자와 문자(배)열 = 51
2.5. 이름과 주석문 = 52
2.5.1. 이름 짓기와 식별자 = 53
2.5.2. 주석문 = 53
3. 표준 입출력 도구 = 57
3.1. 문자 입출력 = 58
3.1.1. getchar()/putchar() 함수 = 58
3.1.2. _getch()/_getche() 함수 = 61
3.2. 문자열 입출력 = 63
3.2.1. gets()/puts() 함수 = 64
3.2.2. gets() 함수와 보안 결함 = 68
3.3. printf() 함수 = 70
3.3.1. 형식 문자와 이스케이프 시퀀스 = 71
3.3.2. 문자와 정수 출력 = 74
3.3.3. 실수와 지수 출력 = 81
3.4. scanf() 함수 = 86
3.4.1. 정수 입력 = 87
3.4.2. 두 정수의 입력 및 구분 = 93
3.4.3. 문자 입력 = 94
3.4.4. 문자열 입력 = 95
4. 연산자 - 기본 = 107
4.1. 산술 연산자 = 109
4.1.1. 덧셈, 뺄셈 연산자 = 110
4.1.2. 이형자료 간의 연산 및 형승격 = 112
4.1.3. 곱셈, 나눗셈 연산자 = 114
4.1.4. 나머지 연산자 = 117
4.2. 대입 연산자 = 120
4.2.1. 단순 대입 연산자 = 120
4.2.2. 복합 대입 연산자 = 125
4.3. 형변환 연산자 = 131
4.4. 단항 증감 연산자 = 133
4.5. 비트 연산자 = 136
4.5.1. 비트 연산자의 사용 = 136
4.5.2. 마스크 연산 = 140
5. 연산자 - 응용 = 149
5.1. sizeof 연산자 = 149
5.2. 관계 연산자 = 151
5.3. 논리 연산자 = 155
5.3.1. 논리합(OR)과 논리곱(AND) = 155
5.3.2. 부정 = 159
5.3.3. 쇼트서킷 = 160
5.4. 조건 연산자(삼항 연산자) = 163
5.4.1. 최댓값 구하기 = 166
5.4.2. 최댓값 구하기 방식 비교 = 172
6. 기본 제어문 = 181
6.1. if문 = 181
6.1.1. 기본 구조 = 182
6.1.2. 제어문과 스코프 = 185
6.2. if else문 = 190
6.2.1. 기본구조 = 190
6.2.2. 중첩된 제어문 = 192
6.2.3. 식별자 검색순서(스코프의 중첩) = 197
6.3. 다중 if문 = 200
6.4. switch-case문 = 205
6.5. goto문 = 209
7. 반복문 = 221
7.1. while - 조건 기반 반복문 = 222
7.1.1. 기본구조 조건에 의한 제어 = 223
7.1.2. 무한루프 = 225
7.1.3. 반복문 내부에 선언한 자동변수 = 228
7.1.4. 반복문의 중첩 = 231
7.2. for, 계수 기반 반복문 = 234
7.2.1. while문과 비교 = 238
7.2.2. ''*''를 이용한 도형출력 실습 = 240
7.3. do while문 = 242
7.4. break와 continue = 244
8. 배열 = 263
8.1. 1차원 배열의 기본 문법 = 266
8.2. 최댓값/최솟값 = 270
8.3. 문자의 배열 = 274
8.3.1. 문자열의 기본 구조 = 274
8.3.2. 문자열의 끝이 ''₩0''인 이유 = 277
8.4. 다차원 배열 = 278
8.4.1. 2차원 배열의 기본 문법 = 279
8.4.2. 3차원 배열 = 286
9. 배열을 활용한 프로그래밍 기법 = 297
9.1. 배열 요소의 정렬 = 297
9.1.1. 선택정렬로 알려진 버블정렬 = 298
9.1.2. 버블정렬 = 302
9.1.3. 선택정렬 = 304
9.2. 배열과 교차의 구현 = 307
9.3. 달팽이 배열 채우기 = 313
9.4. Lookup 배열 = 315
10. 함수에 대한 기본 이론 = 329
10.1. 사용자 정의 함수의 선언 및 정의 = 329
10.1.1. 매개변수 = 332
10.1.2. 반환 자료형 = 332
10.2. 두 가지 함수 설계 원칙 = 335
10.2.1. UI와 기능의 분리 = 335
10.2.2. 재사용 가능한 단위 기능의 구현 = 343
10.3. 코드 분할 = 346
10.3.1. 함수의 원형 선언 = 349
10.3.2. 전역변수 = 351
10.3.3. 전역변수와 식별자 검색 순서 = 357
11. 메모리와 포인터 = 367
11.1. 컴퓨터와 메모리 = 368
11.1.1. 메모리의 종류 = 371
11.1.2. 포인터 변수의 선언 및 정의 = 372
11.1.3. 포인터와 배열 = 377
11.2. 메모리 동적 할당 및 관리 = 384
11.2.1. 메모리 초기화 및 사용(배열) = 387
11.2.2. 메모리 복사 = 392
11.2.3. 메모리 비교(memcmp(), strcmp()) = 396
11.2.4. 문자열 검색 = 401
11.2.5. 배열 연산자 풀어쓰기 = 403
11.2.6. realloc(), sprintf() 함수 = 407
11.3. 잘못된 메모리 접근 = 410
11.4. 포인터의 배열과 다중 포인터 = 413
11.4.1. char*의 배열 = 414
11.4.2. 다중 포인터 = 419
11.4.3. 다차원 배열에 대한 포인터 = 423
11.5. 변수와 메모리 = 424
11.5.1. 정적변수 static = 426
11.5.2. 레지스터 변수 register = 427
12. 함수 응용 = 439
12.1. 매개변수 전달 방법 = 439
12.1.1. Call by value = 440
12.1.2. Call by reference = 441
12.2. 스택 프레임 그리는 방법 = 455
12.3. 재귀호출 = 473
12.3.1. 재귀호출을 이용한 문자열 출력 = 477
12.3.2. 재귀호출의 장/단점 = 479
12.4. 문자/문자열 처리 함수 = 480
12.4.1. 문자 처리 함수 = 481
12.4.2. 문자열 처리 함수 = 481
12.4.3. 유니코드 문자열 = 494
12.5. 유틸리티 함수 = 498
12.5.1. atoi(), atol(), atof() 함수 = 499
12.5.2. time(), localtime(), ctime() 함수 = 501
12.5.3. srand(), rand() 함수 = 505
12.5.4. system(), exit() 함수 = 507
13. 구조체와 공용체 = 517
13.1. 구조체 = 518
13.1.1. 구조체 선언 및 정의 = 519
13.1.2. 구조체 동적 할당 = 524
13.1.3. 반환자료, 매개변수 구조체 = 525
13.1.4. 구조체를 멤버로 가지는 구조체 = 529
13.1.5. 구조체 멤버 맞춤 = 535
13.2. 비트필드 = 539
13.3. 공용체 = 542
14. 파일 입출력 = 547
14.1. 파일 시스템 기본 이론 = 548
14.1.1. 텍스트 파일과 바이너리 파일 = 548
14.1.2. fopen(), fclose() 함수 = 549
14.2. 텍스트 파일 입출력 = 554
14.2.1. fprintf(), fscanf() 함수 = 554
14.2.2. fgetc(), fputc() 함수 = 557
14.2.3. fgets(), fgets_s(), fputs() 함수 = 559
14.2.4. fflush() 함수 = 561
14.3. 바이너리 파일 입출력 = 564
14.3.1. fread(), fwrite() 함수 = 564
14.3.2. fseek(), rewind(), ftell() 함수 = 568
14.3.3. 기타 알아 두면 좋은 함수 = 572
15. 변수와 상수 고급 이론 = 577
15.1. 형한정어 = 578
15.1.1. const = 578
15.1.2. 상수형 포인터 = 581
15.1.3. 심볼릭 상수를 만드는 또 다른 방법 = 585
15.1.4. volatile = 589
15.2. extern 외부변수 선언 = 593
15.3. 형 재선언 = 597
15.4. 열거형 상수 = 599
16. 전처리기 = 605
16.1. #include = 605
16.2. 매크로 = 606
16.2.1. __inline 함수와 메크로 = 607
16.2.2. 매크로 특수화 연산자 #, ## = 610
16.3. 조건부 컴파일 = 612
17. 함수에 대한 고급 이론 = 619
17.1. 성능 향상을 위한 이론 = 619
17.1.1. 컴파일러 최적화 = 620
17.1.2. __inline 함수 = 623
17.2. 함수 호출 규칙 = 625
17.2.1. __cdecl = 626
17.2.2. __stdcall = 629
17.2.3. __fastcall = 630
17.3. 함수 포인터와 역호출 구조 = 631
17.3.1. 함수 포인터 = 633
17.3.2. 역호출 구조 = 634
17.4. 정적 라이브러리의 구현 = 637
17.4.1. 라이브러리 프로젝트 생성 = 638
17.4.2. 헤더파일의 구성 = 640
17.4.3. 정적 라이브러리 사용하기 = 642
17.5. 가변인자 사용하기 = 646
찾아보기 = 652
더보기 닫기