Microsoft PowerPoint - 01_(C_Programming)_(Korean)_C_Language-Overview

Size: px
Start display at page:

Download "Microsoft PowerPoint - 01_(C_Programming)_(Korean)_C_Language-Overview"

Transcription

1 C Programming C 언어개요 (C Language Overview) Seo, Doo-Ok Clickseo.com clickseo@gmail.com

2 목 차 C 언어개요 C 언어기본문법 콘솔입출력 C 프로그램구조 2

3 C 언어개요 C 언어개요 C 언어의역사및특징 C 프로그램단계 C 언어기본문법 콘솔입출력 C 프로그램구조 3

4 C 언어의역사및특징 (1/3) C 언어의역사 : B 언어와 C 언어 ALGOL(ALGOrithmic Language) 1960년, ALGOL 60 제정 1958년, ALGOL 58 ( 원래는 IAL) 1973년, ALGOL 68 개정 BCPL(Basic Combined Programming Language) 1966년, 캠브리지대학교의마틴리처드 (Martin Richard) 가설계 절차적명령형, 구조적컴퓨터프로그래밍언어 자료형을지원하지않고자료객체만지원 B 프로그래밍언어 1969 년, AT&T Bell 연구소의켄톰슨 (Ken Thomson) C 프로그래밍언어 1972년, AT&T Bell 연구소의데니스리치 (Dennis Ritchie) UNIX 운영체제에서사용하기위해개발된프로그래밍언어 BCPL과 B언어를결합, 자료형지원 4

5 C 언어의역사및특징 (2/3) C 언어의역사 : 표준화 C 언어의표준화역사 1989년, 미국국립표준화협회 (ANSI) 에서표준으로지정 : ANSI C, 표준 C, C 년, 국제표준화기구 (ISO) 가 ANSI 표준채택 : ISO/IEC 9899:1990(C90) 1995년, 일종의부록형태로 C90의확장발표 : Normative Addendum 1 (NA1) 유럽을중심으로터져나온 C90 이지나치게미국적 이라는불만을잠재우기위해 C90과 NA1을합해 C95 라고부르기도한다. 1999년, ISO/IEC 9899:1999(C99) 를발표 다양한변화 ( 예를들면 C++ 와유니코드의발전등 ) 를수용하기위해 단일행주석 :// 새로운자료형 : long long int, complex inline 함수, 가변길이배열 2007 년, C 표준화위원회에서새로운기능채택을제안한가이드라인발표 (C1X) 2011 년, 새로운 C 언어표준발표 : ISO/IEC 9899:2011(C11) 5

6 C 언어의역사및특징 (3/3) C 언어의특징 이식성이좋다. 유연성 고급언어와저급언어의특징을동시에가진언어이다. 기계중심의언어 : Assembly 사용자중심의언어 : C, C++, Java, FORTRAN, COBOL, PASCAL 등 구조적프로그래밍을지원하는함수언어이다. 풍부한내장함수라이브러리를제공한다. 프로그래밍구조가간결하고명료하다. 실행파일의크기가작고빠른성능을자랑한다. 분할컴파일기능을지원한다. 6

7 C 프로그램개발단계 (1/2) 라이브러리모듈파일 (Library Module File) 컴파일러 (Compiler) 링커 (Linker) 로더 (Loader) 원시파일 (Source File) 목적파일 (Object File) 실행파일 (Executable File) 실행 (Execution) hello.c hello.obj hello.exe 7

8 C 프로그램개발단계 (2/2) C 프로그램구조 /* */ 간단한 C 프로그램구조 작성자 : 서두옥 #include <stdio.h> // 헤더파일 : 전처리기 (preprocessor) int main(void) // main 함수시작 { printf("hello World!\n"); } // main 함수끝 return 0; // 함수종료 ( 반환값 : 0) 8

9 C 언어기본문법 C 언어개요 C 언어기본문법 식별자 변수와상수 자료형 콘솔입출력 C 프로그램구조 9

10 C 언어의구문과어휘 식별자 (1/4) 문자 종류 영문소문자 영문대문자 a, b, c, d,, x, y, z A, B, C, D,, X, Y, Z 숫자 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 특수문자 +, =, _, -, (, ), *, &, %, $, #,!,, <, >,., [, ], ^, ~,,, ;, :,,,... whitespace blank, new line, tab 10

11 식별자 (identifier) 식별자 (2/4) 프로그래머가임의로정의하여사용하는변수, 함수, 상수등에부여한명칭 식별자에사용될수있는문자 영문소문자 (lowercase letters) : a, b, c,, z 영문대문자 (uppercase letters) : A, B, C,, Z 숫자 (digits) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 _ 문자 식별자를작성하는규칙 첫번째문자 : 영문대소문자또는 _ 숫자는첫번째문자로사용불가능 ( 두번째문자부터가능 ) 사용불가능 : 예약어 (keyword) 와특수문자 변수의이름은최대 63자까지가능하다. 변수이름의길이가 63자를초과하면 63번째문자까지인식한다. C 언어에서식별자는대소문자를정확히구분한다. 11

12 식별자 (3/4) 식별자 : 예제 식별자작성예 SUM, Sum, sum : 서로다른식별자로인식 ( C 언어는대소문자를구분 ) i5clickseo : 두번째문자로숫자사용 name_of_variable, _Clickseo getnumber, printsum, clickseo // 낙타체스타일 CustomerName, ClickSeo // 파스칼스타일 inumber, iclickseo // 헝가리안스타일 잘못작성된예 5iClickseo : 숫자는첫번째문자로사용불가 Clickseo#35 : 특수문자는사용불가 Click-seo : -(hyphen) 사용불가 12

13 식별자 (4/4) 예약어 (keyword) C 언어에서특별한의미로사용되는단어 프로그램내에서재정의되거나다른용도로사용되어서는안된다. C89/C90 : 32 개예약어 auto do goto signed unsigned break double if sizeof void case else int static volatile char enum long struct while const extern register switch continue float return typedef default for short union C99 : 추가된 5 가지예약어 _Bool, _Complex, _Imaginary, inline, restrict C11 : 추가된 7 가지예약어 _Alignas, _Alignof, _Atomic, _Generic, _Noreturn, _Static_assert, _Thread_local 13

14 변수 (variable) 변수와상수 (1/7) 프로그램에서사용되는자료를저장하기위한공간 할당받은메모리의주소대신부르는이름 사용자가변수이름을만들어저장하기위한자료의형태를지정하면, 컴파일러는컴퓨터메인메모리의주소값과연결시켜준다. 프로그램실행중에값을변경하는것이가능하다. 사용되기이전에선언되어야한다 A ch 2000 char int i; ch; i 프로그램 메모리 14

15 변수 : 선언및초기화 #include <stdio.h> 변수와상수 (2/7) int main(void) { // 변수선언 int a; char ch; // 변수는선언과초기화를동시에할수있다. #include <stdio.h> } // 데이터저장 a = 10; ch = 'A'; return 0; int main(void) { int a = 10; char ch = A ; return 0; } 15

16 상수 (constant) 변수와상수 (3/7) 프로그램수행중에값을변경할수없는데이터 리터럴상수 (literal constant) 정수형상수 (integer constant) 실수형상수 (real constant) 문자상수 (character constant) 문자열상수 (string constant) 기호상수 (symbolic constant) 예약어 const 를이용하는방식 매크로상수 (macro constant) 전처리의매크로를이용하는방식 16

17 변수와상수 (4/7) 문자상수 (character constant) 영문자나숫자, 특수기호등을숫자로표현하기위해사용 작은따옴표 ( ) 를이용 내부적으로는문자형상수도숫자로취급된다. #include <stdio.h> int main(void) { char ch1 = A ; char ch2 = 65; printf( %d %d \n, ch1, ch2 ); printf( %c %c \n, ch1, ch2 ); } return 0; 17

18 문자상수 : 확장문자열 변수와상수 (5/7) 확장문자열 : 이스케이프 (escape) 문자 확장문자열 ASCII 코드의미 \0 0 NULL 널문자 (null character) \a 7 BEL 경고음 (alarm) 소리발생 (alert) \b 8 BS 커서를뒤로한칸이동한효과 (backspace) \t 9 HT Tab 키를누른만큼커서이동 (tab : 보통 4 열 ) \n 10 LF 커서를다음행으로이동 (new line, line feed) \v 11 VT 수직탭 (vertical tab) \f 12 FF 인쇄시프린터의종이를한장넘김 (form feed) \r 13 CR 커서를줄의처음으로이동 (carriage return) \ 34 큰따옴표 (double quote) 출력 \ 39 작은따옴표 (single quote) 출력 \\ 92 역슬래시 (literal backslash) 출력 18

19 변수와상수 (6/7) 문자열상수 (string constant) 큰따옴표내에하나이상의문자를묶어서표현하는문자열 문자열상수는문자열끝에널문자 ( \0 ) 가자동으로삽입되는문자상수 A A A A \0 \0 문자 A 문자열 A 빈문자열 (1 byte) (2 bytes) 19

20 변수와상수 (7/7) 기호상수 (symbolic constant) 예약어 const 를이용하는방식 const int MAX = 100; ( 주의할점 ) 1) 자료형한정자가제일먼저나타나야한다. 2) 초기화가반드시되어야한다. 3) 상수로선언되었으므로그값이바뀔수없다. 매크로상수 (macro constant) 전처리의매크로를이용하는방식 전처리기명령어 define 을사용 #define MAX_SIZE

21 C 언어기본문법 자료형 21

22 자료형 (1/11) 부울형 _Bool // since C99 문자형 char, unsigned char 정수형 short int, unsigned short int int, unsigned int long int, unsigned long int long long int, unsigned long long int // since C99 실수형 float, double, long double 형없음 void 22

23 자료형 (2/11) 자료형크기 (byte) 데이터표현범위 char int long char (signed char) ~ 2 7-1:-128 ~ 127 unsigned char (8비트) 0 ~ 2 8 1: 0~255 short int ~ : -32,768 ~ 32,767 unsigned short int (16비트) 0 ~ 2 16 : 0 ~ 65,535 int ~ : -2,147,483,648 ~ 2,147,483,647 unsigned int (32비트) 0 ~ : 0 ~ 4,294,967,295 long int ~ :-2,147,483,648 ~ 2,147,483,647 unsigned long int (32비트) 0 ~ : 0 ~ 4,294,967,295 long long long long int unsigned long long int 8 (64 비트 ) ~ : -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 0 ~ : 0 ~ 18,446,744,073,709,551,615 float float 4 (32 비트 ) ~ : 소수 6 자리표현 double double 8 (64비트) ~ : 소수 15자리표현 long double 8 또는그이상 차이를많이보임 : double의정밀도와같거나크다. 23

24 자료형 (3/11) 예제 1-1 : 다양한자료형의메모리크기 Visual Studio Community 2017 #include <stdio.h> int main(void) { printf("char : %d \n", sizeof(char) ); printf("int : %d \n", sizeof(int) ); printf("long : %d \n", sizeof(long) ); printf("long long : %d \n", sizeof(long long) ); printf("float : %d \n", sizeof(float) ); printf("double : %d \n", sizeof(double) ); printf("long double : %d \n", sizeof(long double) ); } return 0; 24

25 자료형 (4/11) 예제 1-2 : 다양한자료형의메모리크기 #include <stdio.h> int main(void) { // warning: format '%d' expects argument of type 'int, // but argument 2 has type 'long unsigned int // printf("char : %d \n", sizeof(char) ); printf("char : %ld \n", sizeof(char) ); printf("int : %ld \n", sizeof(int) ); printf("long : %ld \n", sizeof(long) ); printf("long long : %ld \n", sizeof(long long) ); printf("float : %ld \n", sizeof(float) ); printf("double : %ld \n", sizeof(double) ); printf("long double : %ld \n", sizeof(long double) ); GCC(GNU Compiler Collection) } return 0; 25

26 자료형 (5/11) 부울형 (boolean type) : _Bool C99 에서추가된부울유형의자료형 <stdbool.h> 헤더파일 : C99 에서추가된헤더파일 _Bool 의별칭으로 bool 을정의 true 및 false 에대한매크로제공 #include <stdio.h> #include <stdbool.h> // bool, true, false int main(void) { _Bool state = true; // bool state = true; state = false; printf("state : %d \n", state ); printf("true : %d \n", true ); printf("false : %d \n", false ); } return 0; 26

27 문자형 (character type) 자료형 (6/11) 컴퓨터에서문자는정수값을부여하여처리 ASCII(American Standard Code for Information Interchange) 컴퓨터는문자상수를자동적으로내부에서 ASCII 코드값으로변환한다. 문자도기본적인산술연산이가능하다. char ch = A ; 가중치 부호비트 (MSB) 0:+ 1:- 8 비트 signed : -2 7 ~ (-128 ~ 127) unsigned : 0 ~ (0 ~ 255) 27

28 정수형 (integer type) 자료형 (7/11) 정수, 즉분수 ( 소수점이하 ) 부분을가지지않는수 int i = 65; 최상위비트 (MSB : Most significant Bit) 32 비트 최하위비트 (LSB: Least Significant Bit) 정수표현범위 : 4bytes(32bits) int 로선언시 : -2,147,483,648 ~ 2,147,483,647 (-2 31 ~ ) unsigned 로선언시 : 0 ~ 4,294,967,295 (0 ~ ) 28

29 정수형 : 음수표현 자료형 (8/11) 음수표현 : 2의보수로표현 int i = -65; 부호비트 (MSB) 가 1 이면음수 (2 의보수로표현 ) unsigned int i = ;

30 실수형 (real type) 자료형 (9/11) 실수 : 소수점이하의값을가진다 ( 정수부분과소수부분 ). 단정도형식 (single precision format) : float 0 지수 (8 비트 ) Excess_127 가수 ( 소수, 23 비트 ) 가수부의부호비트 0 배정도형식 (double precision format) : double 지수 (11 비트 ) Excess_1023 가수 ( 소수, 52 비트 ) 30

31 실수형 : 부동소수점오차 부동소수점오차 자료형 (10/11) 컴퓨터는우리가표현하고자하는실수의값을정확하게표현하는것이아니라, 아주가까운, 전혀문제가없을만큼의근사치를통해서실수를표현한다. 부동소수점오차에대한문제는컴퓨터의문제이지, C 언어의문제는아니다. 따라서다른프로그래밍언어들도기본적으로지니고있는문제이다. #include <stdio.h> int main(void) { int i; float f = 0.0f; for(i=0; i<100; i++) f += 0.1f; printf("%f \n", f); } return 0; 31

32 자료형 (11/11) typedef 지정자 (typedef specifier) 식별자를별칭형식으로선언 주로복잡한유형이름을대체하는데사용되는방법이다. #include <stdio.h> typedef int Clickseo; int main(void) { int a = 10; Clickseo b = 20; // stdio.h 파일에서 typedef 선언적용예 #include <stdio.h> typedef unsigned int size_t; printf("int a : %d \n", a ); printf("clickseo b : %d \n", b ); } return 0; 32

33 콘솔입출력 C 언어개요 C 언어기본문법 콘솔입출력 문자입출력 형식화된입출력 C 프로그램구조 33

34 스트림 (Stream) 데이터의논리적흐름 콘솔입출력 (1/5) 개발자와하드웨어장치사이에존재하는추상적계층 하드웨어장치파일과연결되어데이터전송을중재 표준입출력스트림의종류 <stdio.h> 에입출력스트림정의 입출력스트림 기능 디바이스장치 stdin 표준입력 키보드 stdout 표준출력 모니터 stderr 표준오류 모니터 stdprn 표준프린터 프린터 (LPT1) stdaux 표준보조입출력 직렬포트 (COM1) 34

35 입출력스트림 콘솔입출력 (2/5) 저장장치 파일스트림 ( 파일포인터 ) 파일스트림 ( 파일포인터 ) 저장장치 stdout stdin 표준출력 입력장치 표준입력 프로그램 stderr 표준오류 출력장치 35

36 콘솔입출력 (3/5) 콘솔입출력함수 : 표준입출력함수 형식화되지않은입출력 : 문자입출력 함수의선언기능헤더파일 int getchar( void ); stdin 에서다음한문자를읽어들인다. getc( stdin ) 와동일 int putchar( int ch ); stdout 에한문자를출력한다. putc( ch, stdout ) 와동일 stdio.h int getc( FILE *stream ); 지정된입력 stream 으로부터다음문자를읽어들인다. int putc( int ch, FILE *stream ); 문자 ch 를지정된출력 stream 에출력한다. int ungetc( int ch, FILE *stream ); 지정된 stream 에문자 ch 를되돌려놓는다. 36

37 콘솔입출력 (4/5) 콘솔입출력함수 : 비표준입출력함수 함수의선언 기능 헤더파일 int getch( void ); 한문자를읽어들인다 ( 입력한문자는화면에표시되지않는다 ). int putch( int ch ); 한문자를출력 ( \n 을 CR/LF 의조합으로변환하지않는다 ). int getche( void ); 한문자를읽어들인다 ( 입력한문자는화면에출력 ). conio.h int kbhit( void ); 키의입력여부조사 ( 키의입력이있을경우 0 이아닌수를반환 ) // 헤더파일 : conio.h 콘솔입출력함수를제공하는헤더파일 MS-DOS 시절부터사용되었다. 지금은 C 언어표준도아니고 POSIX 함수도아니다. GNU/Linux 와 Mac OS X 에서는사용할수없다. 37

38 비표준문자입출력함수 콘솔입출력 (5/5) getch 와 getche 함수 #include <conio.h> 비표준입력함수 : 직접문자입력함수 - getchar 함수보다빠른입력속도 int getch( void ); int getche( void ); abc a _ abc 입력 표준입력버퍼 (stdin) c b a getchar() a 입력 a 입력 getche() getch() 메모리 ( 프로그램 ) 키보드 38

39 표준문자입출력함수 getchar 함수 문자입출력 (1/2) 표준입력버퍼 (stdin) 로부터다음한문자를읽어들인다. 파일의끝을만나거나입력오류가발생했을경우에만중지된다. 만약파일의끝을만나거나입력오류가발생하면 EOF 값반환한다. #include <stdio.h> int getchar( void ); ( 성공 ) : 읽어들인문자를반환 ( 실패 ) : EOF 를반환 putchar 함수 표준출력버퍼 (stdout) 에한문자를출력한다. 내부적으로문자는쓰여지기직전에 unsigned char 로변환된다. #include <stdio.h> int putchar( int ch ); ( 성공 ) : 방금쓴문자를반환 ( 실패 ) : EOF 를반환 39

40 #include <stdio.h> 문자입출력 (2/2) 예제 1-3 : 한문자입출력 -- getchar / putchar int main(void) { char ch; printf(" 한문자입력 : "); ch = getchar(); printf(" 문자출력 : "); putchar( ch ) ; putchar('\n'); } return 0; 40

41 콘솔입출력 형식화된입출력 41

42 표준입출력함수 표준입출력 형식화된입출력 (1/16) 표준입력 (standard input) : 키보드 표준출력 (standard output) : 모니터 scanf() 표준입력버퍼 키보드 printf() 표준출력버퍼 메모리 모니터 42

43 형식화된입출력 (2/16) 표준입출력함수 : 콘솔입출력 형식화된입출출력 : printf / printf_s, scanf / scanf_s 함수의선언기능헤더파일 int printf( const char *control-string,... ); 문자열을주어진서식에맞춰 stdout 으로출력한다. // until C99 int printf( const char *restrict format,... ); // since C99 int printf_s( const char *restrict format,... ); // since C11 stdio.h int scanf( const char *control-string,... ); int scanf( const char *restrict format,... ); stdin 으로부터형식화된바이트 문자를읽어들인다. // until C99 // since C99 int scanf_s( const char *restrict format,... ); // since C11 43

44 형식화된입출력 (3/16) 형식화된출력 : printf 계열함수 필드명세 % 부호와변환코드는필수이며나머지는생략가능 일반적으로출력은오른쪽으로맞춰진다. 맞춤을반대로하기위해서는플래그를마이너스기호 (-) 로지정한다. % < 플래그 > < 출력할최소자릿수 > < 정확도변환지정자 > < 크기 > 변환코드 44

45 형식화된입출력 (4/16) 형식화된출력 : printf 계열함수서식지정자 서식지정자 의미 데이터형 %c 인자를 char 형의한문자로출력 문자형 %d 또는 %i 인자를부호있는 10진수로출력 정수형 %u 인자를부호없는 10진수로출력 ( unsigned ) 정수형 %o 인자를부호없는 8진수로출력 정수형 %x, %X 인자를부호없는 16진수로출력 정수형 %f 인자를 float 나 double 형의실수로출력 부동소수형 %e, %E 인자를과학기술계산용표기법으로출력 부동소수형 %g, %G %e 와 %f 중더짧은표현선택 부동소수형 %s 문자열출력 문자열포인터 %p 포인터의주소를출력 포인터 %% % 부호를그대로출력 45

46 형식화된입출력 (5/16) 형식화된출력 : printf 계열함수 출력을위한양식 크기 변환코드 자료형 사용예 none c char %c h d / i short int %hd / %hi h u unsigned short int %hu none d / i int %d / %i none u unsigned int %u l / L d / i long int %ld / %li l / L u unsigned long int %lu ll / LL d / i long long int %lld / %lli ll / LL u unsigned long long int %llu none f float %f / %F l f double %lf / %LF L f long double %LF / %LF 46

47 형식화된입출력 (6/16) 형식화된출력 : printf 계열함수의부동소수점출력 %e, %E : 부동소수점표현방식에의한출력 %g, %G e e %f 형태출력 : 표현하고자하는실수의값이소수점이하 6자리인경우 2. %e 형태출력 : 이범위를넘길경우 %e 의형태로출력 #include <stdio.h> int main(void) { printf("%g \n", ); printf("%g \n", ); printf("%g \n", ); printf("%g \n", ); // 출력 // 출력 // 1.23e-005 출력 // 1.23E-006 출력 } return 0; 47

48 형식화된입출력 (7/16) 예제 1-4 : printf 계열함수의필드명세 -- 정수형데이터 #include <stdio.h> int main(void) { int a = 12345; printf( [%d]\n", a); // 정수출력 printf("[%8d]\n", a); // 출력할최소자리수 : 8 printf("[%08d]\n", a); // 0 플래그 : 빈칸을공백으로채움 printf("[%-8d]\n", a); // - : 왼쪽정렬 printf("[%+8d]\n", a); printf("[%+08d]\n", a); // + : 부호 (+) 출력 } return 0; 48

49 형식화된입출력 (8/16) 예제 1-5 : printf 계열함수의필드명세 -- 실수형데이터 #include <stdio.h> int main(void) { double d = ; printf("[%f]\n", d); // 실수출력 printf("[%8.2f]\n", d); printf("[%08.2f]\n", d); // 출력할최소자리수 (8) 와소수점 2 번째자리까지출력 printf("[%-8.2f]\n", d); printf("[%+8.2f]\n", d); // - : 왼쪽정렬 // + : 부호 (+) 출력 printf("[%+08.2f]\n", d); } return 0; 49

50 예제 1-6 : 다양한데이터출력 형식화된입출력 (9/16) #include <stdio.h> int main(void) { char ch = 'A'; double d = ; printf(" 실수형상수출력 : %lf \n", ); // long double printf(" 실수형변수출력 : %le \n\n", d ); // 지수형소수형태출력 printf(" 문자상수의출력 : %c \n", B ); printf(" 문자변수의출력 : %c \n\n", ch ); printf(" 문자열상수의출력 : %s \n", " 서두옥 ); printf(" 문자열상수의출력 : %5.3s \n", "Hi~ Clickseo ); } return 0; 50

51 형식화된입출력 (10/16) 형식화된입력 : scanf 계열함수 필드명세 % 부호로시작하며, 정확히하나의필드 ( 변수 ) 를기술한다. 문자형식코드 (%c) 를제외하고 scanf 는모든여백은건너뛴다. ( 입력의모든공백, 탭, 줄바꿈을무시한다.) 입력변환은다음과같은상황이발생할때까지입력문자를처리한다. 파일의끝 (EOF, end of file) 에도달했을때 부적절한문자를만났을때 읽은문자의수가명시된최대필드길이에도달했을때 모든필드명세에대하여대응되는변수가주소리스트에존재한다. C 에서 & 부호는주소연산자 (address operator) % < 플래그 > < 입력받을최대자리수 > < 크기 > 변환코드 51

52 형식화된입출력 (11/16) 형식화된입력 : scanf 계열함수 서식지정자 의미 자료형 %c 입력데이터를하나의문자상수로읽어들임 문자형 %d, %i 입력데이터를 10진수로읽어들임 정수형 %u 부호없는 10진수정수를읽어들임 정수형 %o 부호없는 8진수정수로읽어들임 정수형 %x 부호없는 16진수정수로읽어들임 정수형 %f, %e, %g 입력데이터를실수로읽어들임 (float) 실수형 %lf, %LF 입력데이터를실수로읽어들임 (double, long double) 실수형 %p 포인터를읽어들임 포인터 %s 입력데이터를문자열로읽어들임 문자포인터 %n 읽어들인문자수를저장 정수포인터 %[] 입력대상문자의필터링 (scanset의지정 ) 52

53 #include <stdio.h> int main(void) { char 형식화된입출력 (12/16) 예제 1-7 : 한문자입출력 -- scanf ch; printf(" 한문자입력 : "); scanf( %c", &ch); printf(" 문자출력 : %c \n", ch); } return 0; // scanf함수사용시visual Studio 경고메시지 warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS ) 첫번째해결방법 : #define _CRT_SECURE_NO_WARNINGS 2) 두번째해결방법 : #pragma warning(disable:4996) 3) 세번째해결방법 : scanf_s 함수사용 53

54 #include <stdio.h> 형식화된입출력 (13/16) 예제 1-8 : 한문자입출력 -- scanf_s int main(void) { char ch; printf(" 한문자입력 : "); scanf_s( %c", &ch); printf(" 문자출력 : %c \n", ch); } return 0; // scanf_s 함수사용시 Visual Studio 경고메시지 warning C4473: 'scanf_s': 서식문자열에대한인수가충분하게전달되지않았습니다 // 인자로버퍼의크기지정 * 해결방법 scanf_s( %c", &ch, sizeof(ch) ); 54

55 #include <stdio.h> 형식화된입출력 (14/16) 예제 1-9 : 두개의정수입출력과계산 int main(void) { int a, b; printf(" 두개의정수입력 : "); scanf_s( %d %d", &a, &b); printf( %3d + %3d = %3d\n", a, b, a + b); printf("%3d - %3d = %3d\n", a, b, a - b); } return 0; 55

56 형식화된입출력 (15/16) 예제 1-10 : 두개의실수입출력과계산 #include <stdio.h> int main(void) { double a, b; printf(" 두개의실수입력 : "); scanf_s( %lf %lf", &a, &b); printf( %.2f + %.2f = %.2f \n", a, b, a + b); printf( %.2f - %.2f = %.2f \n", a, b, a - b); } return 0; 56

57 형식화된입출력 (16/16) 형식화된입력 : scanf 계열함수의필터링기능 scanf / scanf_s 함수는문자열입력에적당한함수가아니다. 문자열에포함된공백문자로인해긴문장을입력받기에상당히불편 단어단위의입력에는 scanf / scanf_s 함수가적합할지모르겠으나, 문자열의입력은 gets / gets_s 함수를사용하는편이훨씬효율적이다. scanf / scanf_s 함수의필터링기능 입력받을대상문자를선별 (filtering) 하기위해사용 원하지않는문자의입력을막을수있는유용한기능 %[A-Z] // 대문자 A-Z 사이의문자만받아들인다. %[A-Za-z0-9] // 영문자및숫자만받아들인다. %[^0-9] // 숫자를제외한모든문자를받아들인다. 57

58 C 프로그램구조 C 언어개요 C 언어기본문법 콘솔입출력 C 프로그램구조 수식 논리적데이터와연산자 우선순위와결합성 데이터형변환 비트연산자 58

59 수식 (expression) 수식 (1/11) 단일값으로변환하기위한피연산자와연산자의나열 연산자 (operator) 피연산자 (operand) 수식들은항상단일값으로변형된다. 수식의종류 일차식 (primary expression) 이진식 (binary expression) 배정식 (assignment expression) 후위식 (postfix expression) 단항식 (unary expression) 콤마식 (comma expression) 삼원식 (ternary expression) 59

60 수식 (2/11) 일차식 (primary expression) temp 식별자 10 상수 (a + 5-3) 표현식 이름 (name) nvalue w100 Clickseo MAX_SIZE size 상수 (constant) A Hi~ Clickseo 괄호식 (10 * ) (a = 10 + b * 5) 60

61 수식 (3/11) a + 5 이진식 (binary expression) 피연산자 연산자 피연산자 곱셈식 (multiplicative expression) 종류 * / % 내용두피연산자들의대수곱셈첫번째피연산자를두번째피연산자로나누는대수나눗셈 - 두피연산자가정수 정수몫 - 둘중어느한쪽의피연산자가부동소수점이면부동소수점몫첫번째피연산자를두번째피연산자로나눈나머지 (remainder) 정수 나눗셈 : 10 / 3 3 나머지 : 10 % 3 1 부동소수점수 나눗셈 : 10.0 / 모듈러스 (Modulus) 연산자의두피연산자들은반드시정수형태가되어야한다. 61

62 수식 (4/11) 예제 1-11 : 이진식 #include <stdio.h> int main(void) { int a = 10; int b = 3; printf( %d + %d = %d\n, a, b, a + b); printf( %d - %d = %d\n, a, b, a - b); printf( %d * %d = %d\n, a, b, a * b); printf( %d / %d = %d\n, a, b, a / b); printf( %d %% %d = %d\n, a, b, a % b); } return 0; 62

63 수식 (5/11) 배정식 (assignment expression) 할당연산자 (=) 의오른쪽피연산자를평가하고, 왼쪽변수에대입 하나의값과하나의결과 두가지형태 단일배정 (simple assignment) 복합배정 (compound assignment) temp = 변수 할당연산자 표현식 63

64 수식 (6/11) 배정식 : 복합배정 복합배정 (compound assignment) : 단일배정에대한약칭표기 복합식 등가식 a *= b a /= b a %= b a += b a -= b a = a * b a = a / b a = a % b a = a + b a = a b 만약복합배정이이진식과함께사용된다면이진식이먼저평가된다. a *= b > a = a * (b + 3) 64

65 수식 (7/11) 예제 1-12 : 복합배정 #include <stdio.h> int main(void) { int a = 10, b = 3; printf("a : %d, b : %d \n", a, b); printf("a += b : %d \n", a += b ); printf("a : %d, b : %d \n\n", a, b); a = 10; b = 3; printf("a : %d, b : %d \n", a, b); printf("a %%= b : %d \n", a %= b ); printf("a : %d, b : %d \n", a, b); } return 0; 65

66 수식 (8/11) 후위식 (postfix expression) 후위연산자 a++ 피연산자 함수호출 함수이름은피연산자이고연산자는이름뒤에오는괄호이다. 후위증가 (postfix increment) 와후위감소 (postfix decrement) 수식 a++ a-- 등가식 a = a + 1 a = a 1 66

67 단항식 (unary expression) 수식 (9/11) 하나의연산자와하나의피연산자로구성단항연산자 ++a 피연산자 전위증가 (prefix increment) 와전위감소 (prefix decrement) 수식 ++a --a 등가식 a = a + 1 a = a

68 예제 1-13 : 전위증가와후위증가 #include <stdio.h> 수식 (10/11) int main(void) { int a = 30, b = 30; printf("%d, %d\n", a, b); printf("%d\n", ++a ); printf("%d, %d\n", a, b); printf("%d\n", a++ ); printf("%d, %d\n", a, b); printf("%d\n", ++a + ++b ); printf("%d, %d\n", a, b); printf("%d\n", b++ + b++ ); printf("%d, %d\n", a, b); } return 0; 68

69 수식 (11/11) 단항식 : 부호와 sizeof 연산자 sizeof 연산자 sizeof (int) // 할당받는메모리공간의크기를바이트단위로반환 res = sizeof (int) // sizeof 연산자의결과 ( 정수형의값 ) 를저장 sizeof ( ) // 실수형상수가할당받는메모리공간의크기를확인 단항플러스 (unary plus) 와단항마이너스 (unary minus) 수식수식평가전 / 후 a 의내용수식값 +a -a +a -a

70 C 프로그램구조 논리적인데이터와연산자 70

71 논리적데이터와연산자 (1/4) 논리연산자 (logical operators) 논리적데이터 (logical data) ( 명제 ) 실생활에서 예-아니요 와같은데이터 컴퓨터과학에서는참 (true) 과거짓 (false) 을사용한다. not 연산자 :! 15의선행을갖는단항연산자 (unary operator) 참값 (nonzero) 을거짓 (zero) 으로바꾸고, 거짓값 (0) 을참 (1) 으로바꾼다. and 연산자 : && 5의선행을갖는이진연산자 (binary operator) or 연산자 : 4의선행을갖는이진연산자 만약값이 0 이면, 논리값이거짓으로사용된다. 만약값이 0 이아니면, 논리값은참으로사용된다. 71

72 예제 1-14 : 논리식 #include <stdio.h> int main(void) { int a = 5; int b = -5; int c = 0; 논리적데이터와연산자 (2/4) printf(" %2d && %2d : %2d\n", a, b, a && b ); printf(" %2d && %2d : %2d\n", a, c, a && c ); printf(" %2d && %2d : %2d\n\n", c, a, c && a ); printf(" %2d %2d : %2d\n", a, c, a c ); printf(" %2d %2d : %2d\n", c, a, c a ); printf(" %2d %2d : %2d\n\n", c, c, c c ); printf("!%2d &&!%2d : %2d\n", a, c,!a &&!c ); printf("!%2d && %2d : %2d\n", a, c,!a && c ); printf(" %2d &&!%2d : %2d\n", a, c, a &&!c ); } return 0; 72

73 논리적데이터와연산자 (3/4) 관계연산자 (relational operators) 두개의피연산자를받아서서로비교하는이진연산자 결과는논리적데이터값 : 항상참 (1) 과거짓 (0) 관계연산자의미우선순위 < <= > >= ==!= less than less than or equal greater than greater than or equal equal not equal

74 #include <stdio.h> 논리적데이터와연산자 (4/4) 예제 1-15 : 관계연산자 int main(void) { int a = 5; int b = -5; printf(" %2d > %2d : %2d\n", a, b, a > b ); printf(" %2d >= %2d : %2d\n\n", a, b, a >= b ); printf(" %2d < %2d : %2d\n", a, b, a < b ); printf(" %2d <= %2d : %2d\n\n", a, b, a <= b ); printf(" %2d == %2d : %2d\n", a, b, a == b ); printf(" %2d!= %2d : %2d\n", a, b, a!= b ); } return 0; 74

75 C 프로그램구조 우선순위와결합성 데이터형변환 75

76 우선순위와결합성 (1/2) 기능별분류 연산자 결합성 우선순위 일차연산자 ( ) [ ] ->. 1 단항연산자 ! ~ * & sizeof (datatype) 2 산술연산자 * / % 시프트연산자 << >> 5 비교연산자 < <= > >= 6 등가연산자 ==!= 7 & 8 비트논리연산자 ^ 9 10 논리연산자 && 조건연산자? : 13 대입연산자 = += -= *= /= %= <<= >>= &= ^= = 14 콤마연산자, 15 76

77 우선순위와결합성 (2/2) 결합성 (associativity) 왼쪽결합성 (left associativity) 왼쪽에서시작하여오른쪽으로이동해가면서수식을평가하는것 3 * 8 / 4 % 4 * 5 --> (((3 * 8) / 4) % 4) * 5) 오른쪽결합성 (right associativity) 오른쪽에서왼쪽으로진행해가면서수식을평가하는것 3 가지형식 : 단항식, 조건부삼원식, 그리고배정식 a += b *= c -= 5 --> (a += (b *= (c -= 5))) 77

78 데이터형변환 (1/7) 묵시적형변환 (implicit type conversion) C 컴파일러가자동으로데이터의형식을변형시키는것 C 언어는내부적으로정해진자동변환규칙에따라혼합식을처리 long double double 수 식 중간형식 char + int int long int * double int long double 자동형변환 float unsigned long int long int float / double (char + int) / double double double unsigned int int short int char 78

79 예제 1-16 : 묵시적형변환 #include <stdio.h> int main(void) { char ch; int i; float f; double d; 데이터형변환 (2/7) ch = 35; i = 35000; f = 1.3; // warning C4305: '=' : truncation from 'const double ' to 'float ' d = ch * i * f ; printf(" 최종결과 : %lf \n", d); } return 0; 79

80 예제 1-17 : 묵시적형변환 #include <stdio.h> 데이터형변환 (3/7) int main(void) { int i; double d; i = 10; d = ; /* i * d 의연산도중컴파일러가 double 형의메모리공간을할당하고그값을출력할뿐이지 i 의크기가실제로변하는것은아니다. */ printf( 최종결과 : %lf \n", i * d ); } return 0; 80

81 예제 1-18 : 데이터손실 데이터형변환 (4/7) #include <stdio.h> int main(void) { int i; char ch; i = 128; // warning C4244: '=' : conversion from int to char, possible loss of data ch = i; // 데이터손실발생 printf("i = %d \n", i); printf("ch = %d \n", ch); } return 0; 81

82 예제 1-19 : 데이터손실 데이터형변환 (5/7) #include <stdio.h> int main(void) { int i; double d; d = ; // warning C4244: '=' : conversion from double' to int', possible loss of data i = d; // 소수점이하가모두잘려나간다 ( 데이터손실발생 ). printf("d = %lf \n", d); printf("i = %d \n", i); } return 0; 82

83 데이터형변환 (6/7) 명시적형변환 (explicit type conversion) 임의로어떤형식에서다른형식으로데이터를변환시킨다. cast 수식연산자 (cast expression operator) (double) a; // 피연산자는단항식이어야한다. (double) (a + b); // 두개의정수합을하나의부동소수로변형 ave = (double) tot / num; (double) (a / 10); // a 가 3 이라면결과값은 0.0 (double) a / 10; // 부동소수결과는숫자들중하나를명시적형변환 83

84 #include <stdio.h> int main(void) { double a, b; int res1, res2; a = 3.4; b = 2.1; 데이터형변환 (7/7) 예제 1-20 : 명시적형변환과묵시적형변환 // warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data res1 = a * b; // 묵시적 ( 자동 ) 형변환 res2 = (int) a * (int) b; // 명시적 ( 수동 ) 형변환 printf("res1 = %d \n", res1); printf("res2 = %d \n", res2); } return 0; 84

85 C 프로그램구조 비트연산자 85

86 비트연산자 (1/8) 비트연산자 비트단위의정밀한데이터제어를위해사용 char 를포함한정수계산이가능한정수형데이터에서만동작 ( 주의 ) 피연산자로 double 이나 float 과같은부동형을사용할수없다. 구분연산자의미 ~a 1 의보수연산 비트논리연산 시프트연산 a & b a b a ^ b a << n a >> n a와 b의비트단위논리곱 (AND) a와 b의비트단위논리합 (OR) a외 b의비트단위배타적논리합 (XOR) a의각비트를왼쪽으로 n 만큼이동 a의각비트를오른쪽으로 n 만큼이동 86

87 ~ : 1 의보수연산자 1 s complement operator 비트연산자 (2/8) 단항연산자로각각의데이터비트를반대로바꾼다. 1은 0으로 0은 1로바꾼다 ( 부호비트도반전 ). & : 논리곱 비트단위논리곱 (AND) : 특정비트값을 0 으로만들기위해주로사용 a = a & 0x00FF; : a : 0x00FF : a & 0x00FF 87

88 비트연산자 (3/8) : 논리합 비트단위논리합 (OR) : 특정비트값을 1 로만들기위해주로사용 a = a 0xFF00; ^ : 배타적논리합 : a : 0xFF : a 0xFF00 비트단위배타적논리합 (XOR) : 특정비트를반전시키기위해사용 각각의비트가서로다를때 1 이된다. a = a ^ 0xFF00; : a : 0xFF : a ^ 0xFF00 88

89 예제 1-21 : 비트논리연산자 #include <stdio.h> 비트연산자 (4/8) int main(void) { int a = 0x , b = 0x0000FFFF; printf(" a = %p, ~a = %p \n", a, ~a ); printf(" b = %p, ~b = %p \n\n", b, ~b ); printf("a & b = %p\n", a & b ); printf("a b = %p\n", a b ); printf("a ^ b = %p\n", a ^ b ); } return 0; 89

90 시프트연산 : 좌시프트 좌시프트연산자 : << 비트연산자 (5/8) 주어진자릿수만큼비트를왼쪽으로이동시킬수있는연산자 비트연산자의대상 : 정수 ( 즉, float 형이나 double 형에비트연산을할수없다.) 원래있던것은잘려나간다 int i = 10; i = i << 8; 이동된자리는 0 으로채워진다 90

91 시프트연산 : 우시프트 우시프트연산자 : >> 비트연산자 (6/8) 주어진자릿수만큼비트를오른쪽으로이동시킬수있는연산자 비트연산자의대상 : 정수 (float 형이나 double 형에비트연산을할수없다.) int i = -1; i = i >> 1; 부호비트가이동하면빈자리는부호비트로복사된다 91

92 예제 1-22 : 비트연산자 - 좌시프트 #include <stdio.h> 비트연산자 (7/8) int main(void) { int a = 10; // 왼쪽으로 1비트씩시프트할때마다값은 2배가된다. printf("a = %3d\n", a ); printf("a << 1 = %3d\n", a << 1 ); printf("a << 2 = %3d\n", a << 2 ); printf("a << 3 = %3d\n", a << 3 ); printf("a << 4 = %3d\n", a << 4 ); } return 0; 92

93 예제 1-23 : 비트연산자 - 우시프트 #include <stdio.h> 비트연산자 (8/8) int main(void) { int a = 10; // 오른쪽으로 1비트씩시프트할때마다값은 1/2 이된다. printf("a = %3d\n", a ); printf("a >> 1 = %3d\n", a >> 1 ); printf("a >> 2 = %3d\n", a >> 2 ); printf("a >> 3 = %3d\n", a >> 3 ); printf("a >> 4 = %3d\n", a >> 4 ); } return 0; 93

94 참고문헌 [1] 서두옥, 이동호 ( 감수 ), ( 열혈강의 ) 또하나의 C : 프로그래밍은셀프입니다, 프리렉, [2] Paul Deitel, Harvey Deitel, "C How to Program", Global Edition, 8/E, Pearson, [3] SAMUEL P. HARBISON Ⅲ, GUY L. STEELE, C 프로그래밍언어, C : A Reference Manual, 5/E, Pearson Education Korea, [4] Behrouz A. Forouzan, Richard F. Gilberg, 김진외 7인공역, 구조적프로그래밍기법을위한 C, 도서출판인터비젼, [5] Brian W. Kernighan, Dennis M. Ritchie, 김석환외 2인공역, The C Programming Language, 2/E, 대영사, [6] 김일광, C 프로그래밍입문 : 프로그래밍을모국어처럼유창하게, 한빛미디어, 이강의자료는저작권법에따라보호받는저작물이므로무단전제와무단복제를금지하며, 내용의전부또는일부를이용하려면반드시저작권자의서면동의를받아야합니다. Copyright Clickseo.com. All rights reserved. 94

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers

Microsoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.

More information

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

Microsoft PowerPoint - Chapter_04.pptx

Microsoft PowerPoint - Chapter_04.pptx 프로그래밍 1 1 Chapter 4. Constant and Basic Data Types April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 기본자료형문자표현방식과문자자료형상수자료형변환 기본자료형 (1/8) 3 변수 (Variables)

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

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

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt 변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short

More information

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

Microsoft PowerPoint - chap03-변수와데이터형.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num %d\n", num); return 0; } 1 학습목표 의 개념에 대해 알아본다.

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 3 장 : 변수와데이터형 2012 년 이은주 학습목표 변수와상수의개념에대해알아본다. 리터럴상수, 매크로상수, const 변수에대해알아본 다. C 언어의데이터형에대해알아본다. 2 목차 변수와상수 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3 변수와상수 변수 : 값이변경될수있는데이터 상수 : 값이변경될수없는데이터

More information

Microsoft PowerPoint - 01_C_Language_Fundamental

Microsoft PowerPoint - 01_C_Language_Fundamental C Language C 프로그래밍개요 Doo-ok Seo clickseo@gmail.com http:// 목 차 C 언어개요 C 언어기본문법 콘솔입출력 C 프로그램구조 2 C 언어개요 C 언어개요 C 언어의역사및특징 C 프로그램단계 Visual C++ 에서 C 실행 C 언어기본문법 콘솔입출력 C 프로그램구조 3 C 언어의역사 C 언어의역사및특징 ALGOL 60

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 변수와상수의개념에대해알아본다.

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

ABC 2장

ABC 2장 3 장 C 프로그램을이루는구성요소 김명호 내용 주석문 토큰 키워드 식별자 상수 문자열상수 구두자 1 구문 Syntax 올바른프로그램을만들수있게하는규칙 컴파일러 C 프로그램이구문에맞는지검사 오류가있다면, 오류메시지출력 오류가없다면, 목적코드생성 전처리기 컴파일러이전에호출 2 컴파일러 컴파일과정 C 프로그램 토큰으로분리 토큰을목적코드로변환 토큰종류 : 키워드,

More information

K&R2 Reference Manual 번역본

K&R2 Reference Manual 번역본 typewriter structunion struct union if-else if if else if if else if if if if else else ; auto register static extern typedef void char short int long float double signed unsigned const volatile { } struct

More information

Microsoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing

Microsoft PowerPoint - 08_(C_Programming)_(Korean)_Preprocessing C Programming 전처리 (Preprocessing) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 C 전처리기 조건및분할컴파일 2 C 전처리기 C 전처리기 매크로상수 매크로함수 조건및분할컴파일 3 전처리 (Preprocessing) C 전처리기 (1/3) 원시소스파일을컴파일하기전에행해야할일련의작업 외부파일포함기능

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

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

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

More information

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

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

More information

Microsoft PowerPoint - [2009] 02.pptx

Microsoft PowerPoint - [2009] 02.pptx 원시데이터유형과연산 원시데이터유형과연산 원시데이터유형과연산 숫자데이터유형 - 숫자데이터유형 원시데이터유형과연산 표준입출력함수 - printf 문 가장기본적인출력함수. (stdio.h) 문법 ) printf( Test printf. a = %d \n, a); printf( %d, %f, %c \n, a, b, c); #include #include

More information

Microsoft PowerPoint - Chapter_02.pptx

Microsoft PowerPoint - Chapter_02.pptx 프로그래밍 1 1 Chapter 2. Types, Operators, and Expressions March, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 변수의이해 C언어의표준키워드연산자소개키보드입력 변수의이해 (1/9) 3 덧셈예제 3 +

More information

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

Microsoft PowerPoint - chap13-입출력라이브러리.pptx #include int main(void) int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; 1 학습목표 스트림의 기본 개념을 알아보고,

More information

Microsoft PowerPoint - c2.ppt

Microsoft PowerPoint - c2.ppt 프로그램과표준입출력 프로그램 (program) 자료를입력받아서이를처리하여출력을하는일을수행함 2 장 C 언어의기초 입력 프로그램 ( 처리 ) 출력 식별자, 예약어 자료형 상수와변수 수식 연산자 : 산술연산자 자료형변환 표준입출력 (standard input and output: stdio) 표준입력 : 키보드입력 표준출력 : 모니터또는터미널로출력 (cf) DOS,

More information

C 프로그래밍 언어 입문 C 프로그래밍 언어 입문 김명호저 숭실대학교 출판국 머리말..... C, C++, Java, Fortran, Python, Ruby,.. C. C 1972. 40 C.. C. 1999 C99. C99. C. C. C., kmh ssu.ac.kr.. ,. 2013 12 Contents 1장 프로그래밍 시작 1.1 C 10 1.2 12

More information

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

C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습 C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습 구성요소 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 예 /* 두개의숫자의합을계산하는프로그램 */ #include { int main(void) int x; // 첫번째정수를저장할변수 int y; // 두번째정수를저장할변수

More information

슬라이드 1

슬라이드 1 3 장. 선행자료 어휘원소, 연산자와 C 시스템 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2019-1 st 프로그래밍입문 (1) 2 목차 1.1 문자와어휘원소 1.2 구문법칙 1.3 주석 1.4 키워드 (Keyword) 1.5 식별자 (Identifier) 1.6 상수 (Integer,

More information

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

Microsoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드] Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lecture 02 프로그램구조및문법 Kwang-Man Ko kkmam@sangji.ac.kr, compiler.sangji.ac.kr Department of Computer Engineering Sang Ji University 2018 자바프로그램기본구조 Hello 프로그램구조 sec01/hello.java 2/40 자바프로그램기본구조 Hello 프로그램구조

More information

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2> 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력

More information

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

More information

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

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2

4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2 CHAPTER 04. 연산자 수식과대입문의개념을이해한다. 연산자의종류와기능에대해살펴본다. 대입, 산술, 복합대입, 관계, 논리, 조건연산자증감, 비트, 형변환, 콤마, 주소, sizeof 연산자 연산자의우선순위와결합방향을이해한다.. 형변환원리, 종류, 필요성, 사용법을살펴본다. 4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자

More information

Microsoft PowerPoint - 06_(C_Programming)_(Korean)_Characters_Strings

Microsoft PowerPoint - 06_(C_Programming)_(Korean)_Characters_Strings C Programming 문자와문자열 (Characters and Strings) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 문자처리 문자열처리 2 문자처리 문자처리 문자분류함수 문자변환함수 문자열처리 3 문자분류함수 (1/3) 문자분류 (Character classification) 함수 : 영문대소문자 영문대소문자로분류되는문자인지여부를확인하는함수

More information

Microsoft PowerPoint - chap-03.pptx

Microsoft PowerPoint - chap-03.pptx 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에

More information

Microsoft PowerPoint - chap-04.pptx

Microsoft PowerPoint - chap-04.pptx 쉽게풀어쓴 C 언어 Express 제 4 장변수와자료형 컴퓨터프로그래밍기초 1 이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살벼봅니다. 컴퓨터프로그래밍기초 2 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간

More information

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

Microsoft PowerPoint - 2장 변수와 자료형 pptx C 프로그래밍및실습 2. 변수와자료형 세종대학교 목차 1) 변수와자료형개요 4) 부동소수자료형 6) 자료형변환 2 1) 변수와자료형개요 변수 : 값을담을그릇 자료형 : 그릇의모양 이그릇안에 10+20 의결과저장 자료형 int main() { int c ; c=10+20; 변수 int 30 c printf("c=10+20 출력 :"); printf("%d",

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 12 표준입출력과파일입출력... 1. 표준입출력함수 2. 파일입출력함수 1. 표준입출력함수 표준입출력함수 표준입력 (stdin, Standard Input) : 키보드입력 표준출력 (stdout, StandardOutput) : 모니터출력 1. 표준입출력함수 서식화된입출력함수 printf(), scanf() 서식의위치에올수있는것들 [ 기본 11-1]

More information

Microsoft PowerPoint - chap-04.pptx

Microsoft PowerPoint - chap-04.pptx 쉽게풀어쓴 C 언어 Express 제 4 장변수와자료형 이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살벼봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다.

More information

슬라이드 1

슬라이드 1 1 장. C 의개요 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2017-1 st 프로그래밍입문 (1) 2 C 의개요 C-Language 란? 원하는결과를얻어내기위한 Program 작성시필요한일종의언어 Unix 운영체제하에서시스템프로그래밍을하기위해개발된언어 구조적인언어, 강력한기능,

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

int main(void) int a; int b; a=3; b=a+5; printf(a : %d \n, a); printf(b : %d \n, b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf( a : %x \ ? 1 int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \n", &a); printf(" b : %x \n", &b); * : 12ff60,

More information

Microsoft PowerPoint - ch01.ppt

Microsoft PowerPoint - ch01.ppt 201-1 학기프로그래밍입문 (1) 1 장. C 의개요 박종혁 Tel: 970-6702 Email: jhpark1@s.ac.kr 0 C 의개요 C-Language 란? - 원하는결과를얻어내기위한 Program 작성시필요한일종의언어 - Unix 운영체제하에서시스템프로그래밍을하기위해개발된언어 - 구조적인언어, 강력한기능, 빠른속도 C 언어의역사 - ALGOL60

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

untitled

untitled int i = 10; char c = 69; float f = 12.3; int i = 10; char c = 69; float f = 12.3; printf("i : %u\n", &i); // i printf("c : %u\n", &c); // c printf("f : %u\n", &f); // f return 0; i : 1245024 c : 1245015

More information

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

Microsoft PowerPoint - Perpect C 02.ppt [호환 모드] 02 C 프로그래밍기초 충남대학교이형주 1 C 프로그램구조 콘솔응용프로그램 2 프로그램실행순서 C 프로그램은여러함수의조합으로구성 함수란정해진규칙에의하여일련의작업을수행하는프로그램의단위 실행순서 main 함수는프로그램이실행되면가장먼저시작되는부분 모든함수내부에서는위에서아래로, 좌에서우로, 문장이위치한순서대로실행 3 전처리기 전처리기 (preprocessor) 미리처리하는프로그램으로,

More information

Microsoft PowerPoint - Lesson2.pptx

Microsoft PowerPoint - Lesson2.pptx Computer Engineering g Programming g 2 제 3 장 C 프로그래밍구성요소 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() *

More information

ABC 3장

ABC 3장 3 장기본자료형 0 선언, 수식, 배정 모든변수는사용되기전에반드시선언되어야함 일반적인프로그램의시작형태 #include int main(void){ int a, b, c; /* declaration */ float x, y = 3.3, z = -7.7; /* declaration with initialization */ printf("input

More information

슬라이드 1

슬라이드 1 2 장. 어휘원소, 연산자와 C 시스템 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2018-1 st 프로그래밍입문 (1) 2 목차 2.1 문자와어휘원소 2.2 구문법칙 2.3 주석 2.4 키워드 (Keyword) 2.5 식별자 (Identifier) 2.6 상수 (Integer,

More information

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

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

Microsoft PowerPoint - 07_(C_Programming)_(Korean)_Composite_Data_Types

Microsoft PowerPoint - 07_(C_Programming)_(Korean)_Composite_Data_Types C Programming 복합데이터유형 (Composite Data Types) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 구조체 구조체와포인터그리고함수 공용체와열거형 2 구조체 구조체 구조체배열 중첩구조체 구조체와포인터그리고함수 공용체와열거형 3 구조체 (Structure) 구조체 (1/8) 서로연관된원소들의집합을하나의이름으로묶어놓은것

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

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

Microsoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2) 일반적인프로그램의기본구성형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력 데이터처리 결과출력 1-23 덧셈프로그램 #1 주석 전처리기지시어 /* 두개의숫자의합을계산하는프로그램 */ #include 함수 int main(void) { int x; int y; int sum;

More information

본 강의에 들어가기 전

본 강의에 들어가기 전 C 기초특강 변수, 타입, 정수, 실수 상수 상수 (constant) #define MAX_FLOOR 100 프로그램헤더나앞부분에존재 변수의이름 ( 식별자 ) 와같은규칙을따르지만, 일반적으로대문자와 _ 로만구성 프로그램가독성을높이고, 일관된수정을위해사용 프로그램중간에갑자기등장하는임의의숫자는이해도를떨어뜨림 -> 반드시의미있는상수를이용해야함 Preprocessor

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다. 78 90 56

More information

Microsoft PowerPoint - chap03.ppt

Microsoft PowerPoint - chap03.ppt 2010-1 학기프로그래밍입문 (1) 3 장기본자료형 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 목차 3.1 선언, 수식, 배정 3.2 기본자료형 3.3 문자및 char 자료형 3.4 int 자료형 3.5 정수적형 short, long, unsigned 3.6 부동형 3.7 typedef의사용 3.8 sizeof 연산자 3.9

More information

ABC 3장

ABC 3장 4 장기본자료형 김명호 자료형 선언문 수식과문장 정수 문자 논리값 실수 Sizeof 복소수 일반적산술변환과캐스트 내용 1 자료형 C 프로그램의모든변수는자료형이명시되어야함 자료형 (Data type) 또는형 (Type) - 기본자료형 - 사용자자료형 메모리에는모든값들이 0 또는 1 의비트열로저장되지만자료형에따라표현방법이다름 2 프로그램 4.1 예제프로그램 #include

More information

歯9장.PDF

歯9장.PDF 9 Hello!! C printf() scanf() getchar() putchar() gets() puts() fopen() fclose() fprintf() fscant() fgetc() fputs() fgets() gputs() fread() fwrite() fseek() ftell() I/O 2 (stream) C (text stream) : `/n'

More information

Microsoft PowerPoint - chap-05.pptx

Microsoft PowerPoint - chap-05.pptx 쉽게풀어쓴 C 언어 Express 제 5 장수식과연산자 컴퓨터프로그래밍기초 이번장에서학습할내용 * 수식과연산자란? * 대입연산 * 산술연산 * 논리연산 * 관계연산 * 우선순위와결합법칙 이번장에서는수식과연산자를살벼봅니다. 컴퓨터프로그래밍기초 2 수식 수식 (expression) x + y x*x + 5*x + 6 (principal * interest_rate

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 누구나즐기는 이번장에서학습할내용 변수와상수의개념이해 자료형 정수형 실수형 문자형 이번장에서는변수와각종자료형을살벼봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다. 변수 = 상자 변수는물건을저장하는상자와같다. int 데이터 변수의타입

More information

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

chap7.key

chap7.key 1 7 C 2 7.1 C (System Calls) Unix UNIX man Section 2 C. C (Library Functions) C 1975 Dennis Ritchie ANSI C Standard Library 3 (system call). 4 C?... 5 C (text file), C. (binary file). 6 C 1. : fopen( )

More information

1.1.1 컴퓨터의 구성 p.19

1.1.1 컴퓨터의 구성 p.19 교육용프로그래밍언어 C 언어 입력과출력, 연산자 강사 : 김희진 1 contents 표준출력함수 printf, (putchar, puts) 의특징과사용법 표준입력함수 scanf, (gets) 의특징과사용법 printf 와 scanf 함수에서사용되는변환명세이해 수식과대입문의개념이해연산자의종류와기능 대입, 산술, 복합대입, 관계, 논리, 조건연산자증감, 형변환,

More information

슬라이드 1

슬라이드 1 1 장. C 의개요 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2018-1 st 프로그래밍입문 (1) 2 C 의개요 C-Language 란? 원하는결과를얻어내기위한 Program 작성시필요한일종의언어 Unix 운영체제하에서시스템프로그래밍을하기위해개발된언어 구조적인언어, 강력한기능,

More information

1.4.3 증감연산자 후치증가 a++: 프로그램의한명령줄이끝나고 1을증가시킨값을다시 a에저장. 후치감소 a--: 프로그램의한명령줄이끝나고 1을감소시킨값을다시 a에저장. 전치증가 ++a: 1을증가시킨값을미리 a에저장하고프로그램을수행. 전치감소 --a: 1을감소시킨값을미리

1.4.3 증감연산자 후치증가 a++: 프로그램의한명령줄이끝나고 1을증가시킨값을다시 a에저장. 후치감소 a--: 프로그램의한명령줄이끝나고 1을감소시킨값을다시 a에저장. 전치증가 ++a: 1을증가시킨값을미리 a에저장하고프로그램을수행. 전치감소 --a: 1을감소시킨값을미리 1.4.3 증감연산자 후치증가 a++: 프로그램의한명령줄이끝나고 1을증가시킨값을다시 a에저장. 후치감소 a--: 프로그램의한명령줄이끝나고 1을감소시킨값을다시 a에저장. 전치증가 ++a: 1을증가시킨값을미리 a에저장하고프로그램을수행. 전치감소 --a: 1을감소시킨값을미리 a에저장하고프로그램을수행. 예제 ) 증감연산 int a =11, b= 4; printf("a=%d\n",

More information

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

Microsoft PowerPoint 자바-기본문법(Ch2).pptx 자바기본문법 1. 기본사항 2. 자료형 3. 변수와상수 4. 연산자 1 주석 (Comments) 이해를돕기위한설명문 종류 // /* */ /** */ 활용예 javadoc HelloApplication.java 2 주석 (Comments) /* File name: HelloApplication.java Created by: Jung Created on: March

More information

KNK_C03_Expr_kor

KNK_C03_Expr_kor Expressions adopted from KNK C Programming : A Modern Approach Operators 연산자 C 는표현식을많이사용함 표현식은변수와상수와연산자로구성됨 C 에는연산자의종류가다양함 1. arithmetic operators ( 수식연산자 ) 2. relational operators ( 관계연산자 ) 3. logical

More information

untitled

untitled while do-while for break continue while( ) ; #include 0 i int main(void) int meter; int i = 0; while(i < 3) meter = i * 1609; printf("%d %d \n", i, meter); i++; return 0; i i< 3 () 0 (1)

More information

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx

Microsoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx 문제해결중심 C 프로그래밍 제2장순서도를 C로변환하기 ( 순차구조 ) 강릉원주대학교 학습목표 학습목표 이장은1장에서배운순서도를 C 언어프로그램으로변환하는방법을배우고, 이를익숙하게습득하는것을목표로하며, 다음내용을배운다. 학습내용 C 언어를이용한입력과출력방법 분기, 반복, 복합순서도를 C 언어로변환하는방법 C 언어의자료형, 연산자, 제어문사용방법 GangneungWonju

More information

Microsoft PowerPoint - KNK_C03_Expr_kor

Microsoft PowerPoint - KNK_C03_Expr_kor Expressions adopted from KNK C Programming : A Modern Approach Operators 연산자 C 는표현식을많이사용함 표현식은변수와상수와연산자로구성됨 C 에는연산자의종류가다양함 1. arithmetic operators ( 수식연산자 ) 2. relational operators ( 관계연산자 ) 3. logical

More information

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

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 Introduction to software design 2012-1 Final 2012.06.13 16:00-18:00 Student ID: Name: - 1 - 0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x

More information

C 프로그램의 기본

C 프로그램의 기본 C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

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

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (I) Contents 변수와상수 블록과변수의범위 수식과연산자 제어문과반복문 문자와문자열 배열, 포인터, 메모리관리 구조체 디버거 (gdb) 사용법 2/17 Reference The C Programming language, Brian W. Kernighan, Dennis M. Ritchie, Prentice-Hall

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 2... ( ). ( ). @ vs. logic data method variable behavior attribute method field Flow (Type), ( ) member @ () : C program Method A ( ) Method B ( ) Method C () program : Java, C++, C# data @ Program

More information

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

프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013. 쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 덧셈프로그램 #1 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계

More information

Microsoft PowerPoint - lec2.ppt

Microsoft PowerPoint - lec2.ppt 2008 학년도 1 학기 상지대학교컴퓨터정보공학부 고광만 강의내용 어휘구조 토큰 주석 자료형기본자료형 참조형배열, 열거형 2 어휘 (lexicon) 어휘구조와자료형 프로그램을구성하는최소기본단위토큰 (token) 이라부름문법적으로의미있는최소의단위컴파일과정의어휘분석단계에서처리 자료형 자료객체가갖는형 구조, 개념, 값, 연산자를정의 3 토큰 (token) 정의문법적으로의미있는최소의단위예,

More information

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 자바의기본구조? class HelloJava{ public static void main(string argv[]){ system.out.println( hello,java ~ ){ } } # 하나하나뜯어살펴봅시다! public class HelloJava{ 클래스정의 public static void main(string[] args){ System.out.println(

More information

03 상수, 변수, 자료형

03 상수, 변수, 자료형 Part 03 상수, 변수, 자료형 1 이장의내용 자료형이란무엇인가? 상수와변수 정수형 부동소수형 문자형 2 3.1 자료형이란무엇인가? 3 자료형이란무엇인가? 자료형 (data type) 프로그램에서표현혹은저장하는데이터의종류혹은유형 C 언어의자료형 C 언어는 1 개의문자형, 4 개의정수형, 3 개의부동소수형을제공 4 3.2 변수 /3.3 상수 5 변수 변수

More information

PowerPoint Presentation

PowerPoint Presentation 컴퓨터프로그래밍 Computer Programming 04 전처리와입출력 목차 1. 전처리 2. 출력함수 printf() 3. 입력함수 scanf() 3 1. 전처리 전처리개요 전처리기역할 컴파일 compile 전에전처리기 preprocessor 의전처리 preprocess 과정이필요 결과인전처리출력파일을만들어컴파일러에게보내는작업을수행 전처리지시자preprocess

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

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

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

More information

KNK_C02_form_IO_kor

KNK_C02_form_IO_kor Formatted Input/Output adopted from KNK C Programming : A Modern Approach The printf Function (1/3) printf 함수는출력될문자열과해당문자열에포함되어야할값들로구성되어있음 printf(format_string, expr1, expr2, ); 출력될문자열은일반글자들과 % 로시작되는형식지정자가포함될수있음

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다. 78 90 56

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을

구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined data types) : 다양한자료형을묶어서목적에따라새로운자료형을 (structures) 구조체정의 구조체선언및초기화 구조체배열 구조체포인터 구조체배열과포인터 구조체와함수 중첩된구조체 구조체동적할당 공용체 (union) 1 구조체정의 자료형 (data types) 기본자료형 (primitive data types) : char, int, float 등과같이 C 언어에서제공하는자료형. 사용자정의자료형 (user-defined

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

Microsoft PowerPoint - lec3.ppt

Microsoft PowerPoint - lec3.ppt 2008 학년도 1 학기 상지대학교컴퓨터정보공학부 고광만 강의내용 연산자 (operator) 연산자종류연산자우선순위자료형변환 문장 (statement) 배정문 혼합문 제어문조건문, 반복문, 분기문 표준입출력 2 연산자 식 (expression) 의의미를결정 식은연산자 (operator) 와피연자 (operand) 로구성식의값에따라산술식, 관계식, 논리식으로구분

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

13 주차문자열의표현과입출력

13 주차문자열의표현과입출력 13 주차문자열의표현과입출력 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 C 언어를이용하여문자열을처리하기위해서는문자형의배열이나포인터를사용하게된다. 문자열을처리하는동작으로는단순하게문자열의입력이나출력기능이외에도문자열의복사나치환, 문자열의길이를구하거나문자열을비교하는기능등많은기능을필요로한다. 그러나이러한기능들을모두구현하기란매우까다로우며,

More information

슬라이드 1

슬라이드 1 3. 자료와변수 3.1 자료형 자료형 컴퓨터는숫자 (= 데이터 ) 를다룬다. 컴퓨터가다룰수있는숫자의유형이있다. C 언어에서의자료형 크기 (byte) 정수형 ( 문자형 ) char 1 정수형 실수형 ( 부동소수형 ) short 2 int 4 long 4 long long 8 float 4 double 8 long double 8 / 16 강 C 프로그래밍 3

More information

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

Microsoft PowerPoint - chap11.ppt [호환 모드] 2010-1 학기프로그래밍입문 (1) 11 장입출력과운영체제 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr k 0 특징 printf() - 임의의개수의인자출력 - 간단한변환명세나형식을사용한출력제어 A Book on C, 4ed. 11-1 printf() printf(control_string, other_argument) -

More information

슬라이드 1

슬라이드 1 3 장기본자료형 박종혁교수 UCS Lab Tel: 970-6702 Email: jhpark1@seoultech.ac.kr SeoulTech 2018-1 st 프로그래밍입문 (1) 2 목차 3.1 선언, 수식, 배정 3.2 기본자료형 3.3 문자및 char 자료형 3.4 int 자료형 3.5 정수적형 short, long, unsigned 3.6 부동형 3.7

More information

<4D F736F F F696E74202D2032C1D6C2F72D32C2F7BDC32028B0ADC0C7C0DAB7E D20BAAFBCF6BFCD20BFACBBEAC0DA>

<4D F736F F F696E74202D2032C1D6C2F72D32C2F7BDC32028B0ADC0C7C0DAB7E D20BAAFBCF6BFCD20BFACBBEAC0DA> 2015-1 2. 변수 (Variable) 과연산자 (Operator) March 5, 2015 Advanced Networking Technology Lab. (YU-ANTL) Dept. of Information & Comm. Eng, College of Engineering, Yeungnam University, KOREA (Tel : +82-53-810-2497;

More information

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

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

11장 포인터

11장 포인터 Dynamic Memory and Linked List 1 동적할당메모리의개념 프로그램이메모리를할당받는방법 정적 (static) 동적 (dynamic) 정적메모리할당 프로그램이시작되기전에미리정해진크기의메모리를할당받는것 메모리의크기는프로그램이시작하기전에결정 int i, j; int buffer[80]; char name[] = data structure"; 처음에결정된크기보다더큰입력이들어온다면처리하지못함

More information