[프리렉출판사] C언어본색
    • 01
      Part 1
    • 02
      제1장 C언어의 소개와 프로그램 작성 방법
    • 1.1 C언어란 무엇인가
      1.2 컴파일러란 무엇인가
      1.3 프로그램 작성방법 4단계- 이론과실습
      1.4 C 언어의 특징
    • 03
      제2장 C언어의 기본 구조와 표준 입출력
    • 2.1 C언어의 기본 구조
      2.1.2 Step 2 - 전처리기와 헤더 파일
      2.2 Hello C world
      2.3.2 서식 문자
      2.3.3 필드 폭 지정
      2.4 키보드로부터 데이터 입력받기- scanf( ) 함수
      2.4.2 서식 문자
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
    • 04
      제3장 변수란 무엇인가
    • 3.1 변수선언하기
      3.2 변수선언시주의할점
      3.3 변수의 시작 주소와 & 연산자
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
    • 05
      제4장 상수란 무엇인가
    • 4.1 상수란
      4.2.2 심볼릭 상수
      연습문제 1
      연습문제 2
      연습문제 3
    • 06
      제5장 연산자란 무엇인가
    • 5.1 변수와 변수의 시작 주소
      5.2 연산자의 종류
      5.2.3 복합 대입 연산자
      5.2.4 증감 연산자
      5.2.5 관계 연산자
      5.2.6 논리 연산자
      5.2.7 조건 연산자
      5.3 비트연산자
      5.3.2 2진수, 10진수, 16진수, 8진수
      5.3.3 비트 연산자
      5.4 연산자 우선순위
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
      연습문제 7
      연습문제 8
      연습문제 9
      연습문제 10
    • 07
      제6장 자료형이란 무엇인가
    • 6.1 자료형이란
      6.1.2 sizeof 연산자로 자료형의 크기를 구한다
      6.2 정수형
      6.2.1 정수형 데이터 표현 범위를 나타내는 시스템 라이브러리가 있다
      6.2.2 정수형의 양수 표현 범위를 두 배로 늘리는unsigned 자료형이 있다
      6.2.3 정수형은 int형을 선호한다
      6.2.4 정수형의 오버플로우와 언더플로우는 순환된 값을 출력한다.
      6.3 실수형
      6.3.1 실수형 데이터 표현 범위를 나타내는 시스템 라이브러리가 있다
      6.3.3 실수형은 double형을 선호한다
      6.4 문자형
      6.5 자료형변환
      6.5.2 프로그래머가 강제로 형변환을 해준다 - 강제 형변환
      6.6 typedef를 이용한 자료형의 재정의
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
      연습문제 7
    • 08
      제7장 반복문이란 무엇인가
    • 7.1 반복문이란
      7.2 반복문을 만드는 방법1 - while 문
      7.2.2 while 무한 루프(무한 반복문)
      7.2.3 중첩 while 문
      7.3 반복문을 만드는 방법2 - for 문
      7.3.2 for 무한 루프(무한 반복문)
      7.3.3 중첩 for 문
      7.3.4 for 문의 여러 가지 변형
      7.4 반복문을 만드는 방법3 - do~while 문
      연습문제 1
      연습문제 2
    • 09
      제8장 조건문이란 무엇인가
    • 8.1 조건문이란
      8.2 조건문을 만드는 방법 1-if문
      8.3 조건문을 만드는 방법 2-switch~case 문
      8.4 break와 continue
      [연습문제] 1
      [연습문제] 2
      [연습문제] 3
      [연습문제] 4
      [연습문제] 5
    • 10
      제9장 함수란 무엇인가
    • 9.1 함수란
      9.2 다양한 형태의 함수들
      9.3 함수 적용 방법
      9.4 변수의 종류와 범위
      9.5 재귀 함수
      [연습문제] 9-1
      [연습문제] 9-2
      [연습문제] 9-3
      [연습문제] 9-4
      [연습문제] 9-5
      [연습문제] 9-6
      [연습문제] 9-7
      [연습문제] 9-8
    • 11
      Part 2
    • 12
      제1장 1차원 배열
    • 1.1 1차원 배열이란
      1.2 1차원 배열의 주소와 값의 참조
      [연습문제] 1
      [연습문제] 2
      [연습문제] 3
      [연습문제] 4
      [연습문제] 5
      [연습문제] 6
    • 13
      제2장 다차원 배열
    • 2.1 다차원 배열이란
      2.2 2차원 배열의 주소와 값의 참조
      [연습문제] 1
      [연습문제] 2
      [연습문제] 3
      [연습문제] 4
      [연습문제] 5
    • 14
      제3장 포인터
    • 3.1 포인터란
      3.2.1 포인터 변수의 선언
      3.2.2 포인터 변수 사용
      3.2.3 잘못 사용된 포인터
      3.3.1 다차원 포인터 변수의 선언
      3.3.2 다차원 포인터 변수의 사용
      3.4 주소의 가감산
      3.5.1 함수 이름은 함수의 시작 주소이다
      3.5.2 함수 포인터란 함수의 시작 주소를 저장하는 변수이다
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
    • 15
      제4장 포인터와 배열
    • 4.1 포인터와 1차원배열
      4.1.2 1차원 배열에서*(array+i) == *&array[i] == array[i]은값을표현한다
      4.1.3 포인터 변수를 통한 1차원 배열 요소의 주소 접근
      4.1.4 포인터 변수를 통한 1차원 배열 요소의 값 접근
      4.1.5 포인터 변수와 배열의 크기 차이
      4.1.6 주소의 가감산을 이용한 배열의 접근
      4.2 포인터와 2차원 배열
      4.2.2 포인터 변수를 통한 2차원 배열의 접근
      4.2.3 배열 포인터 변수를 통한 2차원 배열의 접근
      4.3 포인터 배열
      4.3.2 포인터 배열과 배열 포인터 변수의 차이
      4.4 포인터와 문자 그리고 포인터와 문자열
      4.4.2 문자열과 널 문자
      4.4.3 문자열 배열
      4.4.4 포인터와 문자열
      4.4.5 포인터 변수의 상수화
      연습문제 1
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
    • 16
      제5장 포인터와 함수
    • 5.1 값에의한 호출과 주소에 의한 호출
      5.1.2 주소에 의한 호출
      5.1.3 주소에 의한 호출의 필요성
      5.1.4 배열 포인터를 이용한 주소에 의한 호출
      5.2 주소를 반환하는 함수
      5.2.2 주소 반환 시 유용한 정적 변수
      5.3 main( ) 함수 에인자가 있을 때
      5.4 void형 포인터란
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
    • 17
      Part 3
    • 18
      제1장 구조체와 공용체
    • 1.1 구조체란
      1.1.1 구조체 정의
      1.1.3 구조체 변수로 멤버 변수에 접근하기
      1.1.4 구조체 변수의 초기화
      1.1.5 구조체 변수의 복사
      1.2 중첩 구조체
      1.2.2 중첩 구조체의 초기화
      1.2.3 typedef를 이용한구조체의 재정의
      1.3 구조체와배열
      1.3.2 구조체 변수로 배열 사용하기
      1.3.3 멤버 변수로 배열을 사용할 때 주의할 점
      1.4 구조체와 포인터
      1.4.2 구조체 변수로 포인터 사용하기
      1.4.3 자기 참조 구조체와 외부 참조 구조체
      1.5 구조체와 함수
      1.5.2 구조체를 함수의 반환형으로 전달하기 - 값 반환과 주소 반환
      1.6 공용체와 열거형
      1.6.2 열거형
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
      연습문제 7
      연습문제 8
      연습문제 9
      연습문제 10
    • 19
      제2장 문자열 표준 함수와 기타 표준 함수
    • 2.1 문자열처리함수1
      2.1.2 strlen( ) 함수 - 문자열의 길이를 알려준다
      2.1.3 strcpy( ) 함수와strncpy( ) 함수 - 문자열을 복사한다
      2.1.4 strcat( ) 함수와strncat( ) 함수 - 문자열을 결합한다
      2.1.5 strcmp( ) 함수와strncmp( ) 함수 - 문자열을 비교한다
      2.2 문자열처리함수2
      2.2.2 strupr( ) 함수와 strlwr( ) 함수 - 문자열을 대문자로 바꾸거나 소문자로 바꾼다
      2.2.3 sscanf( ) 함수와sprintf( ) 함수 - 메모리로부터 문자열을 입력받고 출력한다
      2.3 기타표준함수
      2.3.2 수학 관련 표준 함수
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
      연습문제 7
    • 20
      제3장 콘솔 입출력과 파일 입출력
    • 3.1 스트림이란
      3.1.2 버퍼와 버퍼링
      3.2 콘솔입출력
      3.2.2 콘솔 비표준 입출력 함수
      3.3 파일입출력
      3.3.3 fopen( ) 함수와 fclose( ) 함수
      3.4 표준파일입출력함수
      3.4.2 fgetc( ) 함수와 fputc( ) 함수 - 문자 단위 표준 파일 입출력 함수
      3.4.3 fgets( ) 함수와 fputs( ) 함수 - 문자열 단위 표준 파일 입출력 함수
      3.4.4 fprintf( ) 함수와 fscanf( ) 함수 - 자료형 단위 표준 파일 입출력 함수
      3.4.5 feof( ) 함수- 파일의끝을확인한다
      3.4.6 fflush( ) 함수 - 버퍼를 비운다
      3.4.7 fread( ) 함수와fwrite( ) 함수 - 바이너리 파일 입출력 함수
      3.4.8 fseek( ) 함수와ftell( ) 함수 - 랜덤 접근 함수
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
      연습문제 5
      연습문제 6
      연습문제 7
    • 21
      제4장 동적 메모리 할당과 가변 인자
    • 4.1 동적메모리할당
      4.1.2 동적 메모리 할당의 필요성
      4.2 동적 메모리 할당 함수, 해제 함수 그리고 가변 인자
      4.2.2 calloc( ) 함수와 free( ) 함수
      4.2.3 realloc( ) 함수와 free( ) 함수
      4.2.4 가변 인자
      연습문제 1
      연습문제 2
      연습문제 3
    • 22
      제5장 전처리기와 파일 분할 컴파일
    • 5.1 전처리기
      5.2 매크로
      5.2.2 매크로 해제
      5.2.3 매크로 함수
      5.2.4 # 연산자와 ## 연산자
      5.2.5 미리 정의된 매크로
      5.3 조건부컴파일
      5.3.3 #if~#elif~#else #endif
      5.4 파일 분할 컴파일
      5.4.2 접근 금지 static 키워드
      5.4.3 #include를 이용한 사용자 헤더 파일 만들기
      5.4.4 #ifndef를 이용한 헤더 파일의 중복 문제 방지
      연습문제 1
      연습문제 2
      연습문제 3
      연습문제 4
    2.2 Hello C world
    03 제2장 C언어의 기본 구조와 표준 입출력
    2.2 Hello C world

    2.2  Hello C world

    C 언어는 데이터를 화면에 출력하는 printf( ) 함수를 제공합니다. 이 함수를 이용하여 예제에서 "Hello world"를 화면에 출력해 보겠습니다. 일반적으로 함수 f(x)=y란 x 값을 입력하면 y 값을 내주는 관계를 의미합니다. printf( ) 함수는 이러한 관계에 따라서 출력하려는 값이 함수에게 주어지면 그 값을 모니터로 출력해 줍니다. 다음 예제는 우리가 처음으로 작성하는 프로그램입니다.
    c
    실행 결과를 확인해보세요!
    1행에서 표준 입출력 함수들이 정의된 헤더 파일을 인클루드(Include)하고 있습니다. 헤더 파일 stdio.h 안에는 printf( ) 함수가 정의되어 있습니다. 따라서 컴파일러는 이 파일안에 정의된 내용에 따라 printf( ) 함수의 동작을 수행합니다. 즉, printf( ) 함수를 사용하려면 반드시 헤더 파일 stdio.h가 있어야 하는 것입니다.

    4행에서 printf( ) 함수는 출력 함수입니다. 이 함수는 큰따옴표로 묶인 내용을 모니터에 출력하는 역할을 합니다. 그래서 "Hello C world"를 모니터에 출력하게 됩니다. 다른 내용을 출력하고 싶다면 큰따옴표로 묶인 내용을 원하는 내용으로 바꾸면 됩니다.

    6행에서는 함수를 호출한 운영체제에게 0을 반환하고 main( ) 함수를 종료합니다. 실행 결과에서 "계속하려면 아무 키나 누르십시오 . . ."는 컴파일러에 의해서 자동으로 출력되는 대기 메시지입니다. 프로그램 코드와는 전혀 상관없습니다.

    이제, 여러분은 C 프로그래밍 언어를 배우기 위한 첫 걸음으로 모니터에 간단히 메시지를 출력하는 것을 배웠습니다. 그러나 printf( ) 함수는 지금 배운 것보다 훨씬 다양한 기능을 제공합니다. 그럼 지금부터 이 함수에 관하여 좀 더 자세히 알아보겠습니다.

    2.3  모니터에 데이터 출력하기- printf( ) 함수

    여러분은 예제 2-1을 실행하면서 모니터에 출력된 "계속하려면 아무 키나 누르십시오 . . . "가 계속 거슬렸을 수도 있습니다. 그렇다면, "Hello C world"를 모니터에 좀 더 깔끔하게 출력해 보겠습니다.
    c
    실행 결과를 확인해보세요!
    4행은새롭게 ₩n을 추가한 코드입니다. 그랬더니 출력 결과가 깔끔하게 나왔습니다. ₩n은 현재 커서를 한 줄 아래로 옮기는 역할을 합니다. 즉, 키보드의 Enter 키와 같은 역할을 합니다. 큰따옴표로 묶인 문자들을 차례대로 화면에 출력하다가 ₩n을 만나자마자 바로 다음 줄로 바꿔 출력합니다. ₩n과 같이 특수한 역할을 하는 문자들을 가리켜 특수 문자(Escape Sequence)라고 합니다.

    2.3.1 특수 문자

    C 언어에서 앞의 ₩n과 같은 특수 문자가 다음 표에서처럼 여럿 있습니다.

    default
    이 표를 외울 필요는 없습니다. 필요할 때 참고하면 됩니다. 관련 예제를 살펴보겠습니다.
    c
    실행 결과를 확인해보세요!
    4행에서 ₩t는 키보드의 Tab 키를 누르는 것과 같은 효과를 갖습니다. 실행 결과를 보면 Hello C! 문장이 오른쪽으로 한 탭만큼 옮겨서 출력된 것을 볼 수 있습니다. 그리고 중간의 ₩n에 의해서 다음 줄로 커서가 옮겨져서 Hello world! 문장이 출력되었습니다.
    default
    5행6행에서 큰따옴표와 작은따옴표를 출력하고 있습니다.
    default
    7행에서는 역슬래시( ₩ )를 출력하는 것을 보여줍니다. 다소 복잡해 보이지만 역슬래시를 표현하기 위한 ₩₩와 개행 문자를 표현하기 위한 ₩n이 같이 있는 것입니다.
    default
    질문하기