목차
Part 1 포인터에 대한 궁금함?
   chapter 1 변수와 포인터
      1. 변수와 메모리 주소 ... 5
        1.1 변수와 메모리 할당 ... 5
        1.2 변수의 주소 ... 8
        1.3 주소의 연산 ... 8
        1.4 cast 연산자(형 변환 연산자) ... 10
      2. 포인터는 무엇인가? ... 12
        2.1 포인터 변수 ... 13
        2.2 포인터 변수의 활용 ... 14
        2.3 포인터 변수의 자료형 ... 17
      3. 포인터 연산자 ... 21
        3.1 포인터 식 ... 21
      학습정리 ... 24
      연습문제 ... 25
   chapter 2 배열(Array)과 포인터(Pointer)
      1. 배열(Array)은 무엇인가? ... 31
        1.1 1차원 배열 선언 ... 31
        1.2 1차원 배열요소에 접근하기 ... 33
        1.3 2차원 배열 선언 ... 34
        1.4 2차원 배열요소에 접근하기 ... 36
      2. 배열 초기화 ... 37
      3. 배열의 주소개념 ... 41
        3.1 1차원 배열 주소 확인하기 ... 41
        3.2 2차원 배열 주소 확인하기 ... 42
        3.3 2차원 문자열 입출력 ... 45
      4. 배열과 포인터 ... 46
        4.1 1차원 배열과 포인터 ... 46
        4.2 2차원 배열과 포인터 ... 48
      5. 2차원 배열 포인터 다루기 ... 51
        5.1 배열 포인터 선언 ... 51
        5.2 2차원 배열 포인터 활용 ... 52
      학습정리 ... 56
      연습문제 ... 57
   chapter 3 문자열과 포인터
      1. C 언어의 문자열 ... 65
        1.1 문자열이란 무엇인가? ... 65
        1.2 문자열 상수 포인터 ... 67
        1.3 포인터를 이용한 문자열 조작 ... 68
        1.4 string과 string[]의 차이점 ... 71
      2. const 키워드 ... 76
      3. 포인터를 이용한 함수 구현하기 ... 80
        3.1 문자열 복사함수 구현 ... 80
        3.2 문자열 비교함수 구현 ... 82
      학습정리 ... 85
      연습문제 ... 86
   chapter 4 포인터 배열과 다중 포인터
      1. 포인터 배열은 무엇인가? ... 93
        1.1 포인터 배열 선언 ... 93
        1.2 문자열과 포인터 배열 ... 95
      2. 다중 포인터는 무엇인가? ... 97
        2.1 이중 포인터 선언 ... 98
        2.2 포인터 매개변수 ... 99
      학습정리 ... 104
      연습문제 ... 105
   chapter 5 함수 포인터
      1. 함수 포인터란 무엇인가? ... 111
        1.1 함수 포인터 선언 ... 111
        1.2 함수 포인터 초기화 ... 112
        1.3 함수 포인터 호출 ... 113
        1.4 함수 포인터를 이용한 함수호출하기 ... 114
      2. 함수 포인터 배열이란? ... 118
      학습정리 ... 126
      연습문제 ... 127
   chapter 6 Project Ⅰ
      1. 단어 찾기 프로그램 ... 133
        1.1 main() 함수 ... 133
        1.2 keyword_list() 함수 ... 135
      2. 2차원 포인터 배열을 이용한 판매관리 프로그램 ... 137
        2.1 main() 함수 ... 138
        2.2 product_list() 함수 ... 141
      3. 성적 처리 알고리즘 ... 143
        3.1 main() 함수 ... 144
        3.2 input() 함수 ... 145
        3.3 output() 함수 ... 148
        3.4 find() 함수 ... 149
        3.5 학생 정보 추가 ... 151
Part 2 포인터 이삭줍기
   chapter 7 cast 연산자
      1. cast 연산자는 무엇인가? ... 159
        1.1 cast 연산자의 이해 ... 159
        1.2 cast 연산자를 이용한 다양한 형 변환 ... 161
      2. cast 연산자와 배열 ... 163
        2.1 1차원 배열을 2차원 배열로 형 변환 ... 163
        2.2 2차원 배열을 1차원 배열로 형 변환 ... 167
        2.3 포인터와 배열의 다양성 ... 168
      학습정리 ... 171
      연습문제 ... 172
   chapter 8 NULL 포인터와 void 형 포인터
      1. NULL 포인터는 무엇인가? ... 179
        1.1 NUL 포인터 필요성 ... 179
        1.2 포인터 변수 NULL 초기화 ... 181
        1.3 NULL 포인터의 사용처 ... 182
      2. void 형 포인터 ... 185
        2.1 void형 포인터 선언과 규칙 ... 185
        2.2 void형 포인터 활용 ... 187
      학습정리 ... 190
      연습문제 ... 191
   chapter 9 함수의 가변 인자
      1. 가변인자는 무엇인가? ... 195
        1.1 가변인자의 필요성 ... 195
        1.2 간단한 가변인자의 사용 ... 196
        1.3 가변인자를 위한 매크로 ... 198
      2. 가변인자의 활용 ... 202
        2.1 다양한 자료형을 출력하는 가변인수 ... 202
        2.2 다양한 자료형의 합을 구하는 가변인자 ... 205
      학습정리 ... 207
      연습문제 ... 208
   chapter 10 Project Ⅱ
      1. 가변인자를 이용한 scanf() 함수 만들기 ... 215
        1.1 main() 함수 ... 215
        1.2 my_scanf() 함수 ... 216
      2. 콜백(CallBack) 함수를 이용한 다양한 자료형 비교 ... 220
        2.1 주프로그램과 부프로그램과의 관계 ... 220
        2.2 콜백 함수를 수행하기 위한 완전한 프로그램 ... 223
        2.3 qsort()(퀵 정렬하기) ... 227
Part 3 포인터와 자료구조
   chapter 11 포인터와 구조체
      1. 구조체는 무엇인가? ... 237
        1.1 구조체 선언과 정의(사용자 정의형) ... 237
        1.2 구조체 멤버 접근 ... 239
        1.3 구조체 주소의 연산 ... 241
        1.4 구조체 포인터 ... 242
        1.5 구조체 멤버로 주소 저장하기 ... 245
      2. 자기 참조 구조체는 무엇인가? ... 247
        2.1 자기 참조 구조체 선언 ... 248
        2.2 자기 참조 구조체 선언 시 주의할 점 ... 251
        2.3 구조체가 메모리에 할당되는 크기 ... 252
      학습정리 ... 254
      연습문제 ... 255
   chapter 12 동적 메모리 할당과 링크드 리스트
      1. 동적 메모리 할당이란 무엇인가? ... 261
        1.1 동적 메모리 함수 ... 262
        1.2 malloc() 함수와 free() 함수 ... 263
        1.3 동적 메모터 할당과 구조체 ... 265
      2. 동적 메모리 할당을 이용한 자기 참조 구조체 ... 266
        2.1 자기 참조 구조체의 필요성 ... 267
        2.2 자기 참조 구조체 활용 ... 269
      3. 단일 링크드 리스트 ... 271
        3.1 구조체 노드의 생성과 출력 ... 272
        3.2 구조체 노드의 검색 ... 275
        3.3 구조체 노드의 삭제 ... 276
        3.4 할당된 구조체 노드 모두 해제 ... 280
      4. 이중 링크드 리스트 ... 281
      학습정리 ... 286
      연습문제 ... 287
   chapter 13 스택(Stack)과 큐(Queue) 알고리즘
      1. Stack을 링크드 리스트로 구현하기 ... 295
        1.1 링크드 리스트로 스택을 구현하기 위한 개념 ... 295
        1.2 링크드 리스트로 스택을 구현 ... 297
        1.3 노드 push ... 299
        1.4 노드 List 출력 ... 301
        1.5 노드 pop ... 302
        1.6 모든 노드 해제 ... 303
      2. Queue를 링크드 리스트로 구현하기 ... 305
        2.1 링크드 리스트로 큐를 구현하기 위한 개념 ... 305
        2.2 링크드 리스트로 큐를 구현 ... 306
        2.3 노드 put ... 308
        2.4 노드 List 출력 ... 310
        2.5 노드 pop ... 311
        2.6 모든 노드 해제 ... 313
      학습정리 ... 315
      연습문제 ... 316
   chapter 14 Project Ⅲ
      1. 까꿍이네 편의점 ... 323
        1.1 프로그램 나누기 ... 323
        1.2 main() 함수 ... 324
      2. 상품관리 시스템 ... 328
        2.1 상품관리 구조체 배열 ... 328
        2.2 상품관리 함수들 ... 329
        2.3 상품정보 출력 함수 ... 330
        2.4 상품정보 입력 함수 ... 331
        2.5 상품정보 수정 함수 ... 333
        2.6 상품정보 파일 입출력 ... 335
      3. 판매관리 시스템 ... 338
        3.1 판매관리 구조체 ... 338
        3.2 판매관리 함수들 ... 339
        3.3 판매정보 입력 함수 ... 340
        3.4 판매정보 출력 함수 ... 345
        3.5 판매정보 취소 함수 ... 349
        3.6 판매정보 파일 입출력 ... 352
APPENDIX A : 연산자의 우선순위 ... 362
APPENDIX B : ASCII CODE TABLE ... 363
INDEX ... 367
닫기