KNK_C01_intro_kor

Similar documents
Microsoft PowerPoint - KNK_C01_intro_kor

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

K&R2 Reference Manual 번역본

슬라이드 1

OCW_C언어 기초

PowerPoint Presentation

ABC 2장

C 프로그램의 기본

Microsoft PowerPoint - chap03-변수와데이터형.pptx

슬라이드 1

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

OCW_C언어 기초

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - Lesson2.pptx

쉽게 풀어쓴 C 프로그래밍

KNK_C02_form_IO_kor

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

OCW_C언어 기초

PowerPoint Presentation

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap12-고급기능.pptx

컴파일러

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드]

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

untitled

PowerPoint 프레젠테이션

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - [2009] 02.pptx

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - additional01.ppt [호환 모드]

untitled

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습

Microsoft PowerPoint - chap05-제어문.pptx

C 언어와 프로그래밍 개요

Chapter_06

슬라이드 1

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

슬라이드 1

슬라이드 1

C 언어 프로그래밊 과제 풀이

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - c2.ppt

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

Microsoft PowerPoint - chap04-연산자.pptx

제4장 기본 의미구조 (Basic Semantics)

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]

Microsoft PowerPoint - chap10-함수의활용.pptx

03 상수, 변수, 자료형

Microsoft PowerPoint - ch07 - 포인터 pm0415

untitled

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - chap06-1Array.ppt


PowerPoint Template

중간고사

Microsoft PowerPoint - chap11-포인터의활용.pptx

untitled

Microsoft PowerPoint - Chapter 1-rev

KNK_C03_Expr_kor

KNK_C_05_Pointers_Arrays_structures_summary_v02

C++-¿Ïº®Çؼ³10Àå

Microsoft PowerPoint - chap11.ppt [호환 모드]

Microsoft PowerPoint - ch01.ppt

슬라이드 1

Microsoft PowerPoint - KNK_C03_Expr_kor

C# Programming Guide - Types

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

Introduction to Geotechnical Engineering II

PowerPoint 프레젠테이션

chap10.PDF

PowerPoint Presentation

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

untitled

PowerPoint 프레젠테이션

chap7.key

C언어 및 실습 C Language and Practice

Microsoft PowerPoint - chap08-1 [호환 모드]

PowerPoint 프레젠테이션

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - chap01-C언어개요.pptx

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

본 강의에 들어가기 전

C 프로그래밊 개요

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63132B0AD20B5BFC0FB20B8DEB8F0B8AEC7D2B4E7>

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

쉽게 풀어쓴 C 프로그래밍

Microsoft PowerPoint - 2장 변수와 자료형 pptx

Transcription:

C Fundamentals adopted from KNK C Programming : A Modern Approach

Program: Printing a Pun 파일이름은자유롭게짓되확장자는항상.c 로지정할것을권고 for example: pun.c #include <stdio.h> // directive 지시자 int main(void) // function 함수의시작 { /* 문장시작 */ printf("to C, or not to C: that is the question.\n"); return 0; } /* 문장끝, 함수끝 */ 컴파일하기 % cc -o pun pun.c % gcc -o pun pun.c or 실행하기 (linux 라는조건하에 ) %./pun 2

간단한프로그램의기본골격 C 언어의세가지핵심요소 1 2 3 Directives 지시자 int main(void) { 문장들 } Example: #include <stdio.h> 시작 끝 3

The General Form: Directives 지시자 C 언어의세가지핵심요소 directives 1 Example: #include <stdio.h> C 프로그램이컴파일되기전에전처리기를거침 지시자에쓰인명령들이전처리기에서활용됨 <stdio.h> 는헤더이고표준입출력라이브러리함수들의정의를포함 Directives 는언제나 # 으로시작 기본적으로 directives 는한줄씩표현 ; 줄의끝을알리는세미콜론이나특별한마커가없음 4

The General Form: 함수 C 언어의세가지핵심요소 int main(void) 함수이름 main 이라는이름아래같이 2 실행될여러문장이묶여있음 { } # of statements return x + 1; Library functions 들은 c 언어에서기본으로제공함 함수가계산한값을호출한대상에게돌려주기위해 return 문장을씀 main 함수는필수적임 main 특별함 : 프로그램이실행되면제일처음호출되어실행됨 main 의실행결과로상태코드를리턴함 ; 0 이면정상종료를뜻함 어떤컴파일러에서는 return 문장이없으면경고메시지를출력함 5

The General Form: Statements 문장 C 언어의세가지핵심요소 3 statements 프로그램이동작하면실행해야될명령들로서모든문장은세미콜론으로마침표를찍어야함 pun.c 은두종류의문장을썼음 uses only two kinds of statements. 하나는 return 문장 ; 다른하나는 function call ( 함수호출 ). 함수에명시된작업을처리하라고시키는것을함수를호출한다라고함 (calling the function). pun.c 은 printf 를호출하여문자를출력함 : printf("to C, or not to C: that is the question.\n"); 6

문자열출력 : printf printf 함수가문자열을출력하면쌍따옴표로묶인모든글자는출력하되쌍따옴표는출력하지않음 printf 는문장을출력후줄바꿈을하지않음 printf 에서문장을바꾸기위해서는 \n (the new-line character) 를쌍따옴표안에넣어야함 같은효과 printf("to C, or not to C: that is the question.\n"); printf("to C, or not to C: "); printf("that is the question.\n"); printf("brevity is the soul of wit.\n --Shakespeare\n"); more on printf on following section 7

주석 comment comment 는 /* 으로시작하고 */ 으로끝남. /* This is a comment */ 주석은프로그램내에어디든나타날수있음여러줄에걸쳐서또는한줄에도나올수있음 한줄이상걸치는주석 /* Name: pun.c Purpose: Prints a bad pun. Author: K. N. King */ C99 표준에서는한줄짜리주석을위해 // 을사용함 // A comment, which ends automatically at the end of a line // 의장점 : 안전함 : 한줄만주석되기때문에실수를줄여줌 여러줄을 // 로주석처리할때가독성이좋음 8

Variables and Assignment 변수와할당 프로그램이데이터를임시로저장할수있어야함 임시로저장할수있는공간이변수 variables. 변수와할당을사용하려면다음을알아야함 1. Type 형 / 타입 2. Declaration 선언 3. Initialization 초기화 1 2 3 int height = 183; 9

Variables and Assignment: 형 / 타입 모든변수는 type 이있어야함 C 에는여러형이있음그중몇가지는 int 와 float. int (integer 의약어 ) 형은정수를저장함예 : 0, 1, 392, or 2553. float (short for floating-point 의약어 ) 형은 int 형보다더큰수를표현 float 형변수는소수점도저장할수있음예 : 379.125. float 변수의단점 : 연산이늦음 float 정밀하지않음 10

Variables and Assignment: Declarations 선언 변수는먼저 declared 선언된후사용 다음과같이사용하는것이가능하다 int height; float profit; int height, length, width, volume; float profit, loss; main 에선언문들이포함되어있다면이를활용하는문장들보다앞에있어야함 int main(void) { declarations statements } 11

Variables and Assignment: 할당 (1/2) 변수는할당 (assignment ) 을통해값을갖게됨 : height = 8; // 숫자 8은상수 변수에값을할당하거나사용하기전에는먼저선언되어야함 float 형변수는소수점단위까지저장함 profit = 2150.48; 소수점단위의상수뒤에 f 를붙여서 float 변수에저장하는것이좋음 : profit = 2150.48f; 어떤컴파일러는 f 가없으면경고메시지를출력함 12

Variables and Assignment: 할당 (2/2) int 형변수는정수를저장하고 float 형변수는실수를저장함 형을섞어서쓰는것은가능하지만, 안전하지않음 ( 예, int 값을 float 변수에할당하기 ) 변수에값이할당되면연산식에사용될수있음 height = 8; length = 12; width = 10; volume = height * length * width; // volume is now 960 할당자우변은식이올수있음. 표현식에는상수, 변수, 연산자들로구성됨 13

Variables and Assignment: Initialization 초기화 어떤변수들은자동으로 0 으로초기화되지만, 대부분그렇지않다 기본값이없는변수인경우그리고할당되지않은변수를 uninitialized. 초기화안됨이라고표현함 초기화안된변수를쓰면예상치못하는결과를얻게됨 어떤컴파일러들에서는프로그램이멈추는경우도생김 초기화과정을선언에포함시킬수있음 int height = 8; // The value 8 is said to be an initializer. int height = 8, length = 12, width = 10; int height, length, width = 10; // initializes only width 14

변수의값출력하기 printf 를사용하여변수의현재값을출력할수있음 아래와같이출력하기위해 printf를호출하려면 : Height: h printf("height: %d\n", height); %d 는 height 의값이표현될위치를표시하는형식지정자 하나의 printf 문장에표현될수있는변수의개수에제한없음 : printf("height: %d Length: %d\n", height, length); Details of printf on following section 15

입력값읽기 scanf 는 printf 의형제와같은입출력라이브러리함수이다. scanf 는어떤형의값을저장할수있는지나타내는형식지정자가필요 scanf 가 int 형값을읽는예 : scanf("%d", &i); /* reads an integer; stores into i */ & 심볼은 scanf 를쓰는데쓰임. Details of scanf on following section 16

상수에이름부여하기 매크로정의기능을사용하여상수에이름을부여가능 : #define INCHES_PER_POUND 166 매크로이름은대문자로쓰는것이관용적 프로그램이컴파일되면전처리기가매크로가사용된곳을숫자로치환함 전치리과정에서다음과같은문장은 weight = (volume + INCHES_PER_POUND - 1) / INCHES_PER_POUND; 다음과같이바뀜 weight = (volume + 166-1) / 166; 매크로의값이수식일수도있음 : #define RECIPROCAL_OF_PI (1.0f / 3.14159f) 단, 연산자가있는경우괄호로묶어야함 17

Identifiers 식별자 Identifiers 식별자 : 변수, 함수, 매크로와다른여러것들의이름 문자, 숫자, 밑줄이허용되지만, 숫자또는밑줄만첫글자로쓸수있음 : times10 _done symbol_table current_page C 식별자의글자수는제한없음 symboltable currentpage 쓰면안되는식별자의예 : 10times get-next-char C 대소문자구분 job job job job Job JoB JOb JOB all are different 18

Keywords 아래의 keywords 는식별자로쓸수없음 : auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while inline* restrict* _Bool* _Complex* _Imaginary* *C99 only 키워드는 ( 예외 _Bool, _Complex, _Imaginary) 모두소문자로만쓸수있음. 라이브러리함수의이름 (e.g., printf) 역시소문자임 19

Layout of a C Program (1/2) C 프로그램은 tokens 으로이루어짐. 토큰은 : Identifiers 식별자 Keywords 키워드 Operators 연산자 Punctuation 구두점 Constants 상수 String literals 문자 다음문장은 printf("height: %d\n", height); 7 개의토큰으로이루어짐 : printf Identifier ( Punctuation "Height: %d\n" String literal, Punctuation height Identifier ) Punctuation ; Punctuation 20

Layout of a C Program (2/2) 하나의문장은여러줄로나뉠수있음 토큰사이의공백 ( 연산자앞뒤의공백, 쉼표뒤의공백등 ) 은사람이읽기편하라고존재. Indentation 들여쓰기는중첩문장들을읽기쉽게해줌 Blank lines 빈줄은프로그램을논리적으로구성하는데용이함 21