미리보기
만화가 있는 C
누구에게나 쉬운 만화 C언어 입문서!
ISBN 978-89-315-5543-1
저자 서진택
발행일 2018-05-17
분량 568p
편집 1도
판형 190x260
개정판정보 2018. 5. 17.
정가 25,000원↓
판매가 22,500
(10% off)
적립금 1,250원(5%)
  소득공제
도서소개

effe713586fa9cb7





책 소개


만화보다 더 쉬운 저자 직강 무료 유튜브 강의와 함께 공부하는



누구에게나 쉬운 만화 C언어 입문서!



만화가 있는 C》  

 


프로그래밍 언어를 공부하는 목적은 논리적인 사고를 키워 전지적인 시점의 문제해결 능력을 키우는 것도 있지만 궁극적으로는 활용이 목적이다. 이론과 실습을 거쳐 상용 제품까지 개발할 수 있는 단계까지 간다면 금상첨화일 것이다.

만약 누군가에게 "C가 가장 쉬웠어요."라고 얘기하면 쉽게 공감이 갈까? 이처럼 개념과 문법, 활용 단계로 넘어가 자유자재로 사용하기 어려운 C언어의 문법과 예제를 누구나 이해하기 쉽게 구성된 책이 나왔다. 철저하게 독자의 눈높이에 맞춰 쉽게 이해할 수 있도록 집필된, 만화를 곁들인 C언어 입문서가 바로 이 <만화가 있는 C>이다. C언어로 ()KOG에서 상용 게임을 개발한 경험이 있고, 동서대학교 게임학과 교수로 재직 중인 저자가 집필한 이 책은 대학 전산학과, 게임학과 학생들의 눈높이에 맞는 이론과 실용을 겸비한 C언어 입문서이다.

2000년에 저자가 처음 집필하여 호평 받은 이후 최신 버전에 맞게 다듬고 내용을 보완하여 연령에 관계없이 누구나 즐기는 유튜브(YouTube)를 통해 저자 직강 무료 동영상 강의(https://www.youtube.com/channel/UCn6c2IbDl6_bf24RTbwA24A)와 함께 공부할 수 있도록 선보여 C언어에 대한 문턱을 한껏 낮췄다.

무엇보다 상세한 문법 위주의 목차와 짧은 단원 단위와 설명, 풍부한 도해와 만화, 매 장마다 실습 문제가 있어 학습하는데 전혀 부담이 없다. 특히 저자는 13F Games라는 회사도 창업하여 게임도 출시 예정이라고 하니 C언어로 상용 게임까지 개발하는 저자의 강의에 귀를 기울일 필요가 있다.




저자 소개



저자_서진택 / 동서대 디지털콘텐츠학부 게임테크놀러지트랙 교수


1988~1994 경북대학교 컴퓨터공학과

1994~1996 경북대학교 컴퓨터공학과 대학원, 공학석사

1996~1999 경북대학교 컴퓨터공학과 대학원, 박사 과정 수료

2000~2015 ()KOG 개발팀장

2016~현재 동서대학교 디지털콘텐츠학부 게임 전공 교수

 

이메일: jintaeks@dongseo.ac.kr

유튜브: https://www.youtube.com/channel/UCn6c2IbDl6_bf24RTbwA24A










* 아래의 큐알코드는 스마트폰의 큐알코드 스캐너로 인식한 뒤 '웹사이트 찾아보기 > 만화가 있는 C' 글씨 부분 클릭하시면 유튜브 강의 목록으로 연결됩니다.

 

 

  59ebf5f7075c7e0a

목차


차례


서문 / 3

 

왜 언어의 이름이 C++? / 6          

C++C, 무엇이 다른가요? / 6

환경 / 12

 

 

1 들어가기 전에 / 14

 

Visual Studio 2013 프로젝트 설정 / 14           

int가 차지하는 메모리의 크기 / 18


  

2 수학 함수를 C 함수로 바꾸기 / 19

 

아규먼트(argument)와 파라미터(parameter) / 26

관례(convention) / 27            

이젠 할 수 있다! / 29            

함수도 선언해야 한다 / 34           

소스 문자 집합(source character set) / 41


  

3 이진수(binary number) / 49

 

보충해 주는 수: 보수(complement of a number) / 52

진보된 주제: 비트 플래그(bit flag), 비트 마스크(bit mask) / 57

실습문제 / 64


  

4 변수는 쓰기 전에 선언해야 한다: 데이터 형(data type) / 65

 

초기화(initialization) / 70            

함수형 초기화(functional initialization) / 71

실수(real number)는 어떻게? / 72

부동 소수 표현(floating point notation): 진보된 주제 / 73

부동 소수의 가감승제(addition, subtraction, multiplication and division) / 79

형의 종류(sort of types) / 81 

특별한 형 void / 82

실습문제 / 84


  

5 이스케이프 절차(Escape Sequence) / 85

 

특정 문자 강조(Highlight)하기 / 90           

C++11: 원시 문자열(raw string) / 93

실습문제 / 94

 

 

6 포인터(pointer), [] 연산자 / 95

 

문자열(string)은 포인터 표현이다 / 103

진보된 주제: 포인터의 포인터, 함수 포인터 / 106

실습문제 / 107


  

7 문장(statement) vs. 표현식(expression) / 108

 

문장의 종류 / 116

실습문제 / 117


  

8 연산자(operator) / 118

 

산술(Arithmetic) / 119           

할당(Assignment) / 123

비트(Bitwise) / 126              

C++에서만 사용가능(C++ specific) / 131

new / 139 delete / 151          

typeid / 152 dynamic_cast / 154

콤마(Comma) / 160            

조건(Conditional) / 163

논리(Logical) / 165             

후위 표기(Postfix) / 170

전처리(Preprocessor) / 179   

참조/역참조(Reference/Dereference) / 181

관계(Relational) / 184           

sizeof / 186

형 변환(casting, type conversion) / 189

함수형 형 변환(functional casting) / 192

실습문제 / 194


  

9 scanf( )&가 필요한 이유: 스택 동작 / 195

 

스택(stack): 자료구조의 정상 / 195 

&의 역할 / 198

scanf()&를 적어야 하는 이유 / 213

진보된 주제: 포인터를 바꾸려면? / 214

실습문제 / 216


  

10 제어 구조 / 217

 

if/ 221               

switch/ 228

진보된 주제: switch를 보는 컴파일러의 입장 / 232

for/ 232             

while/ 239             

do...while/ 241 

실습문제 / 244


  

11 프로젝트(project) 만들기 / 245

 

볼랜드(Borland) C++ 3.1인 경우 / 247           

볼랜드 C++ 4.5인 경우 / 249

볼랜드 C++ 빌더(Builder)인 경우 / 253           

마이크로소프트 비주얼 C++ 4.2인 경우 / 257

마이크로소프트 비주얼 C++ 5.0인 경우 / 261

비주얼 스튜디오(Visual Studio) 2013의 경우 / 266

실습문제 / 270


  

12 변수의 종류, 범위 규칙(scope rule) / 271

 

스택(stack) / 272             

C++11에서 auto의 의미 / 274

(heap) / 277                

레지스터(register) / 282

파일(file) / 285               

가시범위(visibility)에 의한 구분 / 288

블록 범위(block scope) / 289 

전역 범위(global scope) / 291

프로토타입 범위(prototype scope) / 294 

진보된 주제: static에 관한 진실 / 295

실습문제 / 299


  

13 배열: 4차원의 세계(4-dimensional world) / 300

 

차원(dimension) / 300            

같은 형의 변수를 여러 개 선언하는 방법 / 303

내용 연산자(content-of operator) [] / 305

2차원 배열(2-dimensional array) / 319

3차원 이상의 배열 / 326

배열의 전달 / 327

포인터 배열 / 330             

울타리 막대기 문제: 가장자리 문제 / 334

진보된 주제 / 335 

실습문제 / 335


  

14 참조표(lookup table) / 336

 

점수에 따라 등급을 출력하는 경우 / 338        

기교(technique) / 339

임의의 숫자열 토글하기 / 340                     

임의의 사상(mapping) 구현하기 / 341

실습문제 / 343


  

15 포인터 / 346

 

포인터의 포인터(pointer to pointer) / 350           

참조(reference) / 358

가용 공간 리스트(available list): 진보된 주제 / 359

newdelete / 364            

2차원 배열의 할당 / 370

실습문제 / 372


  

16 사용자 정의형, 열거형 / 373

 

typedef(TYPE DEFinition) / 373               

범위(scope) / 376

enum: 열거형 / 377                                

컴파일러의 입장 / 380

클래스에서 enum의 사용 / 381           

실습문제 / 383


  

17 구조체(structure), 공용체(union) / 384

 

왜 이것이 필요한가? / 384 

문법 / 385

구조체 멤버 참조 연산자: . -> / 388

구조체 포인터가 사용된 경우 / 389

구조체의 필드를 바라보는 컴파일러의 입장상대 주소(offset address) / 393

구조체의 전달(passing), 리턴(return) / 395

비트 필드 구조체(bit-field structure) / 403

진보된 주제: 구조체 필드, 자기 참조 구조체와 구조체 배열 / 407

불완전 선언(Incomplete Declaration) / 408           

공용체(union) / 414

무명 공용체(anonymous union) / 418                  

연결 리스트(linked list) / 419

실습문제 / 419


  

18 파일(file) / 420

 

핸들(handle)이란? / 420                   

파일의 사용 / 423

파일 포인터(file pointer) / 427           

이진 파일 vs. 텍스트 파일 / 428

고전(oldest), 그러나 ASCII / 430        

텍스트 파일의 처리 / 434

이진 파일의 처리 / 436                     

버퍼링(buffering) / 437

실습문제 / 441


  

19 함수 포인터(function pointer) / 442

 

함수 포인터가 필요한 경우 / 442           

함수 포인터 선언하기 / 444

함수 포인터 배열 / 446                       

오버로드된 함수의 주소 / 448

디폴트 파라미터(default parameter) / 449

함수 포인터 형 정의하기 / 450

진보된 주제: 멤버 함수의 주소 / 454 

C++의 새로운 연산자: .*->* / 456

진보된 주제: 멤버 함수 포인터의 응용 / 458

실습문제 / 462


  

20 전처리 명령어(preprocessing command) / 463

 

#include / 464             

#define / 471

왜 매크로 상수를 사용하는가? / 474 

매크로 함수(macro function) / 476

관례 / 478                  

미묘하지만 중요한 문제 / 479

#ifdefined 연산자 / 480 

#undef, #line, #error#pragma / 486

미리 정의된 매크로(predefined macros) / 486

운영체제나 환경에 의존적인 설정이 필요하다면? / 491

실습문제 / 491


  

21 가변 인자(variable argument) / 492

 

스택 동작 / 496             

1개의 형과 3개의 매크로 / 498

다른 예(another example) / 501 

실습문제 / 502


  

22 메모리(memory) / 503

 

옛날 옛적 8비트와 16비트 시절 / 503

어려운 선택, 세그멘테이션(segmentation) / 505

인텔의 선택: 세그멘테이션(segmentation) / 506

64KB의 한계 / 511            

메모리 모델(memory model) / 513

선형 주소(linear address) / 515      

동적 할당, 그 내부(internal) / 517

최소 블록(minimum block): 패러그래프(paragraph) / 522

단편화(fragmentation) / 523           

외부 단편화(external fragmentation) / 527

실습문제 / 530


  

23 표준 함수(standard function) / 531

 

C 표준라이브러리 헤더 파일들 / 532 

형 지원 / 534             

동적 메모리 할당 / 534 

에러 처리 / 534           

프로그램 유틸리티 / 535           

가변 인자 / 535

날짜/시간 함수 / 536              

스트링 라이브러리 / 536

알고리즘 함수 / 537               

수치 함수 / 537

.출력 지원 함수 / 538           

지역화 함수들 / 539

원자(atomic) 연산 라이브러리 / 539 

스레드(thread) 지원 라이브러리 / 539

실습문제 / 540


  

24 C++의 구조체(structure) / 541

 

좀 더 자연스러운 구조체 / 550 

C++을 배우려는 독자들에게 / 559

실습문제 / 560


  

찾아보기 / 561

저자
부록/예제소스
정오표
    최근 본 상품 1