Microsoft PowerPoint - 01_C_Language_Fundamental
|
|
- 신혜 내
- 5 years ago
- Views:
Transcription
1 C Language C 프로그래밍개요 Doo-ok Seo clickseo@gmail.com
2 목 차 C 언어개요 C 언어기본문법 콘솔입출력 C 프로그램구조 2
3 C 언어개요 C 언어개요 C 언어의역사및특징 C 프로그램단계 Visual C++ 에서 C 실행 C 언어기본문법 콘솔입출력 C 프로그램구조 3
4 C 언어의역사 C 언어의역사및특징 ALGOL 60 (ALGOrithmic Language) BCPL 1960 년탄생된블록구조언어 Basic Combined Programming Language 1967 년캠브리지의 Martin Richard 자료형을지원하지않고자료객체만지원 B 언어 1970 년 Bell 연구소의켄톰슨 (Ken Thomson) C 언어 Bell 연구소의데니스리치 (Dennis Ritchie) BCPL 과 B 언어를결합, 자료형지원 1989 년미국규격협회 (ANSI) 에서표준화된 C 승인 : ANSI C (C89) 1990 년국제표준화기구 (ISO) 가 ANSI 표준채택 : ISO C 또는표준 C (C90) 4
5 C 언어의역사및특징 (cont d) C 언어의역사 (cont d) C 언어의표준화역사 1989 년미국규격협회 (ANSI) 에서표준화된 C 승인 : ANSI C (C89) 1990 년국제표준화기구 (ISO) 가 ANSI 표준채택 : ISO C 또는표준 C (C90) 1995 년일종의부록형태로 C90 의확장발표 : Amendment 1 (AMD1) 유럽을중심으로터져나온 C90 이지나치게미국적 이라는불만을잠재우기위해 C90 과 AMD1 을합해 C95 라고부르기도한다 년 C99 를발표 다양한변화 ( 예를들면 C++ 와유니코드의발전등 ) 를수용하기위해 5
6 C 언어의역사및특징 (cont d) C 언어의특징 이식성이좋다. 유연성 고급언어와저급언어의특징을동시에가진언어이다. 기계중심의언어 : Assembly 사용자중심의언어 : C, C++, Java, FORTRAN, COBOL, PASCAL 등 구조적프로그래밍을지원하는함수언어이다. 풍부한내장함수라이브러리를제공한다. 프로그래밍구조가간결하고명료하다. 실행파일의크기가작고빠른성능을자랑한다. 분할컴파일기능을지원한다. 6
7 C 프로그램의완성과정 C 프로그램단계 7
8 C 프로그램단계 (cont d) C 프로그램의완성과정 1 단계 : 프로그램작성 원시파일 (source file) 생성 : hello.c 2 단계 : 프로그램번역 C 컴파일러 : 전처리기 (preprocessor) 와번역기로구성 목적파일 (object file) 생성 : hello.obj 3 단계 : 프로그램연결 링커 (linker) 모든함수들을마지막실행가능한프로그램으로연결 실행파일 (execute file) 생성 : hello.exe 4 단계 : 프로그램실행 로더 (loader) 프로그램을메모리에적재하는운영체제의기능 8
9 C 프로그램단계 (cont d) 간단한 C 프로그램구조 /* 간단한 C 프로그램구조작성자 : 서두옥 */ #include <stdio.h> // 헤더파일 : 전처리기 (preprocessor) // 전역변수선언부분 int main(void) // main() 함수시작 { // 지역변수선언부분 printf("hello World!\n"); return 0; // 0 을반환하고함수종료 }// main() 함수끝 9
10 Visual C 에서 C 실행 1 단계 : 프로그램의작성 작업공간마련 : Visual C++ 실행 File New 메뉴선택 10
11 Visual C 에서 C 실행 (cont d) 1 단계 : 프로그램의작성 (cont d) 프로젝트생성 : Win32 Console Application 선택 DOS 프롬프트기반의프로그램작성 11
12 Visual C 에서 C 실행 (cont d) 1 단계 : 프로그램의작성 (cont d) 프로젝트생성완료 12
13 Visual C 에서 C 실행 (cont d) 1 단계 : 프로그램의작성 (cont d) 파일생성 : File New 메뉴선택 File 탭에서 C++ Source File 선택 13
14 Visual C 에서 C 실행 (cont d) 1 단계 : 프로그램의작성 (cont d) 파일생성완료 : hello.c 14
15 Visual C 에서 C 실행 (cont d) 1 단계 : 프로그램의작성 (cont d) 코딩 (coding) : 원시코드 (source code) 작성 15
16 Visual C 에서 C 실행 (cont d) 2 단계 : 컴파일 (Compile) 컴퓨터가이해할수있는기계어로변환하는과정 hello.obj 목적파일생성 16
17 Visual C 에서 C 실행 (cont d) 3 단계 : 링크 (Link) 컴파일된코드를라이브러리파일과연결시켜주는단계 hello.exe 실행파일생성 17
18 Visual C 에서 C 실행 (cont d) 4 단계 : 프로그램실행 18
19 C 언어기본문법 C 언어개요 C 언어기본문법 예약어, 식별자 변수, 상수 데이터형 콘솔입출력 C 프로그램구조 19
20 C 언어의구문과어휘 예약어, 식별자 문자 종류 영문소문자 영문대문자 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 20
21 예약어 (keyword) 예약어, 식별자 (cont d) C 언어에서특별한의미로사용되는단어 프로그램내에서재정의되거나다른용도로사용되어서는안된다. auto default float register switch break do for return typedef cast double goto signed union char else if sizeof unsigned const enum int static void continue extern long struct volatile while 21
22 식별자 (identifier) 예약어, 식별자 (cont d) 프로그래머가임의로정의하여사용하는변수, 함수, 상수등에 부여한명칭을말한다. 식별자에사용될수있는문자 영문소문자 (lowercase letters) : a, b, c,, z 영문대문자 (uppercase letters) : A, B, C,, Z 숫자 (digits) : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 _ 문자 식별자를위한규칙 첫번째글자는영문자또는 _ 여야한다. 영문자, 숫자또는 _ 로만이루어진다 ( 특수문자는사용불가 ). 첫 31 글자만의미를가진다. 예약어 (Keyword) 를사용할수없다. 22
23 식별자 (cont d) 식별자예제 예약어, 식별자 (cont d) SUM, Sum, sum : 서로다른식별어로사용 ( C 언어는대소문자를구분 ) Z, z : Z 와 z 는서로다른식별어 Click_seo : _ 를식별어중간에사용 Clickseo2000 : 영문자와숫자로구성한식별어 _Clickseo_ : _ 를처음과끝에사용 잘못된예제 Clickseo#35 : 특수문자는사용불가 1234clickseo : 숫자는사용불가 Click-seo : - (hyphen) 은사용불가??Clickseo : 특수문자는사용불가 23
24 변수, 상수 변수 (variable) 프로그램에서사용되는자료를저장하기위한공간 할당받은메모리의주소대신부르는이름 사용자가변수이름을만들어저장하기위한자료의형태를지정하면컴파일러는컴퓨터의메인메모리에주소값과연결시켜준다. 프로그램실행중에값변경가능하다. 사용되기이전에선언되어야한다 A ch 2000 char ch; int i; i 프로그램 메모리 24
25 변수, 상수 (cont d) 변수 (cont d) 변수사용예 // 변수는선언과초기화를동시에할수있다. #include <stdio.h> #include <stdio.h> void main(void) { int a; char ch; 변수선언부 void main(void) { int a = 10; char ch = A ; } } a = 10; ch = 'A'; 변수처리부 int count = 0; int count, sum = 0; int count = 0, sum = 0; int count = 0; int sum = 0; 25
26 상수 (constant) 변수, 상수 (cont d) 프로그램수행중에변하지못하는자료값 실제값상수 정수형상수 (integer constant) 실수형상수 (real constant) 문자형상수 (character constant) 문자열상수 (string constant) 기억장소를갖는상수 선언하는것은변수선언과똑같지만앞에 const 키워드를써야하고반드시초기값이있어야한다는것이다르다. 26
27 상수 (cont d) 정수형상수 변수, 상수 (cont d) 자동으로 int 가되며, 큰숫자를사용하면자동으로 long int 가된다. 변경을원하면숫자다음에 U 나 u 그리고 L 이나 l 을붙이면된다. Literal L 76542LU Value ,271 76,542 Type int int long int unsigned long int 27
28 변수, 상수 (cont d) 상수 (cont d) 실수형상수 실수형숫자는기억장치에저장될때가수부 (significand) 와지수부 (exponent) 로나뉘어저장된다. 실수형상수는자동으로 double 자료형으로저장된다. 변경을원하면 F나 f, 또는 L이나 l을숫자뒤에붙이면된다. Literal f L Value Type double double double double float long double 28
29 변수, 상수 (cont d) 상수 (cont d) 문자상수 영문자나숫자, 특수기호등을숫자로표현하기위해사용 작은따옴표 ( ) 를이용 내부적으로는문자상수도숫자로취급된다. #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; 29
30 상수 (cont d) 변수, 상수 (cont d) 확장문자열 : 이스케이프 (escape) 문자 확장문자열 ASCII 코드 의 미 \0 00 NULL 널문자 (null character) \a 07 BEL 경고음 (alarm) 소리발생 (alert) \b 08 BS 커서를뒤로한칸이동한효과 (backspace) \t 09 HT Tab 키를누른만큼커서이동 (tab : 보통 8 열 ) \n 10 LF 커서를다음행으로이동 (new line) \v 11 VT 수직탭 (tab) \f 12 FF 인쇄시프린터의종이를한장넘김 (form feed) \r 13 CR 커서를줄의처음으로이동 (carriage return) \ 34 큰따옴표출력 \ 39 작은따옴표출력 \\ 92 역슬래시출력 30
31 변수, 상수 (cont d) 상수 (cont d) 문자열상수 큰따옴표내에하나이상의문자를묶어서표현하는문자열이다. 문자열상수는문자열끝에반드시널문자 \0 가자동으로삽입되는문자상수 A A A A \0 \0 문자 A (1 byte) 문자열 A (2 bytes) 빈문자열 31
32 상수 (cont d) 정의된상수 ( 매크로상수 ) 변수, 상수 (cont d) 전처리기명령어인 define 을사용하는것 #define MAX_SIZE 1024 기호상수 (symbolic constants) const int MAX = 100; ( 주의할점 ) 1 자료형한정자가제일먼저나타나야한다. 2 초기화가반드시되어야한다. 3 상수로선언되었으므로그값이바뀔수없다. 32
33 데이터형 데이터형 (data type) Data Type 기본형 정수형 short, unsigned short int, unsigned int long, unsigned long 실수형 float, long double, double 문자형 char, unsigned char 형없음 void 구조를갖는형 배열형 구조체 [ ] struct 공용체 union 열거형 enum 포인터형 * 33
34 데이터형 (cont d) 데이터형 (cont d) 데이터형 크기 (byte) 수의범위 char char signed char ~ ( -128 ~ 127 ) unsigned char 0 ~ ( 0~255 ) int short int unsigned short int int unsigned int ~ (-32,768 ~ 32,767) 0 ~ 2 16 ( 0 ~ 65,535 ) ~ ( -2,147,483,648 ~ 2,147,483,647 ) 0 ~ ( 0 ~ 4,294,967,295 ) long long int unsigned long int ~ (-2,147,483,648 ~ 2,147,483,647) 0 ~ ( 0 ~ 4,294,967,295 ) float float ~ : 소수 6 자리표현 double double long double 8 8 또는그이상 ~ : 소수 15자리표현차이를많이보임 : double의정밀도와같거나크다. 34
35 데이터형 (cont d) 문자형 데이터형 (cont d) 컴퓨터는문자상수를자동적으로내부에서 ASCII 코드값으로변환한다. 문자들에대한산술연산이가능하다. C 언어에서의문자는작은정수 (0 에서 255 사이 ) 로취급된다. char ch = A ; 가중치 부호비트 (MSB) 8 bits 0 : + 1 : - signed : -2 7 ~ (-128 ~ 127) unsigned : 0 ~ (0 ~ 255) 35
36 데이터형 (cont d) 정수형 int count = 65; 데이터형 (cont d) 정수, 즉분수 ( 소수점이하 ) 부분을가지지않는수 최상위비트 (MSB : Most significant Bit) 16 bits 최하위비트 (LSB: Least Significant Bit) 2byte(16bit) 처리계의정수표현범위 int 로선언시 : ~ (-2 15 ~ ) unsigned 로선언시 : 0 ~ (0 ~ ) 36
37 데이터형 (cont d) 정수형의음수표현 데이터형 (cont d) int count = -65; MSB 가 1 이면음수 (2 의보수로표현한것 ) 37
38 데이터형 (cont d) unsigned int 형의메모리표현 데이터형 (cont d) unsigned short int i = 65535; 부호비트를고려하지않으므로 2 16 = 0 ~ 까지표현할수있다. 38
39 데이터형 (cont d) 실수형 데이터형 (cont d) 분수 ( 소수점이하 ) 를가지지않는수 실수값을나타내는방법 지수부 (7 bits) 가수부 ( 소수, 24 bits) S 가수부의부호비트 (0: 양, 1: 음 ) float : 부동소수점단정도 (single precision type) 4byte double : 부동소수점배정도 (double precision type) 8byte 39
40 데이터형 (cont d) 부동소수점오차 데이터형 (cont d) 컴퓨터는우리가표현하고자하는실수의값을정확하게표현하는것이아니라, 아주가까운, 전혀문제가없을만큼의근사치를통해서실수를표현한다. 부동소수점오차에대한문제는컴퓨터의문제이지, 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; 40
41 음수표현방법 부호절대치방법 데이터형 (cont d) +9 부호비트만바꾼다 = +9 각비트를 1 의보수로바꾼다 -9 1 의보수방법 의보수방법
42 데이터형 (cont d) 프로그램예제 : 데이터형의크기알아보기 (1/2) #include <stdio.h> int main() { char ch = 'A'; int i = 65; double d = 3.14; printf( ### 데이터형의크기 ### \n"); printf( \nchar : %d\n", sizeof(char)); printf("char ch = \'A\': %d\n", sizeof(ch)); printf( \nint : %d\n", sizeof(int)); printf("int i = 65 : %d\n", sizeof(i)); printf( \nshort int : %d\n", sizeof(short int)); printf("long int : %d\n", sizeof(long int)); 42
43 데이터형 (cont d) 프로그램예제 : 데이터형의크기알아보기 (2/2) printf( \nfloat : %d\n", sizeof(float)); printf("double : %d\n", sizeof(double)); printf("double d = 3.14: %d\n", sizeof(d)); printf("long double : %d\n", sizeof(long double)); printf( \nstring \'Hello\' : %d\n", sizeof("hello")); printf( \ndefault constant 1 : %d\n", sizeof(7)); printf("default constant 2 : %d\n", sizeof(10.12)); } return 0; 43
44 콘솔입출력 C 언어개요 C 언어기본문법 콘솔입출력 콘솔입출력개념 콘솔입출력함수 표준문자입출력함수 : getchar, putchar 비표준문자입출함수 : getche, getch 문자열입출력함수 : gets, puts 형식화된입출력함수 : printf, scanf C 프로그램구조 44
45 스트림 (Stream) 의개념 데이터의논리적흐름 콘솔입출력개념 개발자와하드웨어장치사이에존재하는추상적계층 하드웨어장치파일과연결되어데이터전송을중재 표준입출력스트림의종류 <stdio.h> 에입출력스트림정의 입출력스트림 기능 디바이스장치 stdin stdout stderr stdprn stdaux 표준입력표준출력표준오류표준프린터표준보조입출력 키보드모니터모니터프린터 (LPT1) 직렬포트 (COM1) 45
46 입출력스트림 콘솔입출력개념 (cont d) 파일스트림 파일스트림 ( 파일포인터 ) ( 파일포인터 ) 디스크 프로그램 stdout 디스크 stdin 표준출력 표준입력 stderr 키보드 표준오류 모니터 46
47 콘솔입출력함수의종류 콘솔입출력함수 함수의선언 기능 헤더파일 int getchar(void); int putchar(inc c); char *gets(char *str); int puts(char *str); int printf(char *control-string,...); int scanf(char *control-string,...); int getch(void); int putch(void); int getche(void); int kbhit(void); 한문자를읽어들인다. 한문자를출력한다. 문자열을읽어들인다. 문자열을출력한다. 문자열을서식을갖춰출력문자열을서식을갖춰입력입력화면에입력문자는표시안된다 ( 비표준문자입력함수 ). putchar() 와달리 \n 을 CR/LF의조합으로바꾸지않는다 ( 비표준문자출력함수 ). 입력문자가화면에출력 ( 에코 ) 된다 ( 비표준문자입력함수 ) 키의눌림여부를조사한다. 눌린경우 0이아닌수를반환한다 ( 비표준키입력함수 ). stdio.h conio.h 47
48 콘솔입출력함수 (cont d) 표준문자입출력함수 getchar() 함수 표준입력장치인키보드로부터한문자를읽어들이는함수 파일의끝을만나거나입력오류가발생했을경우에만중지된다. 만약파일의끝을만나거나입력오류가발생하면 EOF 값반환한다. int getchar(void); 호출성공 : 읽어들인문자를반환호출실패 : EOF 를반환 putchar() 함수 표준출력장치인모니터화면에한문자를출력하는함수 int putchar(int ch); 호출성공 : 방금쓴문자를반환호출실패 : EOF 를반환 48
49 콘솔입출력함수 (cont d) 프로그램예제 : 한문자를입력받고출력 #include <stdio.h> int main(void) { char ch; printf(" 한문자입력 : "); ch = getchar(); printf(" 문자출력 : "); putchar(ch); putchar('\n'); } return 0; 49
50 콘솔입출력함수 (cont d) 비표준문자입출력함수 getche() 와 getch() 함수 int int getche(void); getch(void); ANSI C 표준은아니지만, 대다수의 C 컴파일러가지원하는직접문자입력함수 getchar() 보다빠른입력속도 abc a _ abc 입력 a 입력 행버퍼 abc getchar() getche() 메모리 ( 프로그램 ) 키보드 a 입력 getch() [ getchar() 와 getche(), getch() 의차이 ] 50
51 콘솔입출력함수 (cont d) 문자열입출력함수 gets() 함수 리턴 ( 개행 ) 문자를문자열의끝표시 (\0) 로변환한다. 표준입력파일시스템에서데이터를읽는다. char *gets (char *string); 호출성공 : string 의번지를반환호출에러 : NULL 을반환 puts() 함수 널문자 ( \n ) 는줄넘김문자로대체된다. int puts (char *string); 호출성공 : 음수가아닌정수반환호출에러 : EOF 를반환 51
52 서식화된입출력 서식화된입출력함수 : printf, scanf 표준입출력파일 표준입력파일 (standard input file) 키보드 표준출력파일 (standard output file) 모니터 52
53 서식화된출력 서식화된입출력 (cont d) 표준형식출력함수 : printf (print formatted) 호출성공 : 출력한 bytes 수를반환호출실패 : EOF 를반환 53
54 서식화된입출력 (cont d) 서식화된출력 (cont d) 필드명세 % 부호와변환코드는필수적이며나머지는생략가능 일반적으로출력은오른쪽으로맞춰진다. 맞춤을반대로하기위해서는플래그를마이너스기호 (-) 로지정한다. % <flag> <minimum width> <precision> <size> conversion-code 출력을위한양식 Size Code Type Example none c char %c H d short int %hd none d int %d l or L d long int %ld none f float %f none f double %f l or L f long double %lf 54
55 서식화된입출력 (cont d) 서식화된출력 (cont d) 크기 (size) 변환코드에나타난자료형을수정하기위하여사용 너비 (minimum width) 변환지정자 출력의최소의자릿수 를나타내기위하여사용 ( 미지정시각자료는필요한공간만큼만을이용한다.) 정확도 (precision) 변환지정자 실수형자료출력시소수점이하부분몇자리까지출력하는지를기술 ( 미지정시소수점 6 자리까지기본출력 ) 55
56 서식화된입출력 (cont d) 서식화된출력 (cont d) printf() 함수의서식지정자 서식지정자 %c %d, %i %o %x, %X %u %f %e, %E %g, %G %s %p %% 의미인자를 char 형의한문자로출력인자를부호있는 int 형로출력인자를부호없는 8진수로출력인자를부호없는 16진수로출력인자를부호없는 10진수로출력인자를 float나 double형의실수로출력인자를과학기술계산용표기법으로출력 %e와%f 중더짧은표현선택문자열출력포인터의주소출력 % 부호를그대로출력 데이터형문자형정수형정수형정수형정수형부동소수형부동소수형부동소수형문자포인터포인터형 56
57 서식화된입출력 (cont d) 서식화된출력 (cont d) %c, %d, %f, %s 가장많이쓰이는서식문자들 %o, %u, %x, %X 부호없는정수형출력 %e, %E ' 부동소수점표현방식 ' 에의한출력 e e
58 서식화된입출력 (cont d) 서식화된출력 (cont d) %g, %G 표현하고자하는실수의값이소수점이하 6자리인경우 %f의형태로출력 이범위를넘길경우 %e의형태로출력 #include <stdio.h> int main(void) { printf("%g n", ); // 출력 printf("%g n", ); // 출력 printf("%g n", ); // 1.23e-005 출력 printf("%g n", ); // 1.23E-006 출력 } return 0; 58
59 서식화된입출력 (cont d) 서식화된출력 (cont d) printf 함수의변환서식수정자 conversion specification modifier 변환서식지정자형식 : [-] [m]. [n] [l] 의미 사용예 출력예 m 출력필드의최대자릿수 printf( %10d, x); _ n 소수점이하자릿수 printf( %3.2f, f); 서식문자를왼쪽부터채움 printf( %-10d, x); _. 최대출력폭과문자수의구분소수점이하자릿수를구분 printf( %5.2s, abcd ); printf( %3.2f, f); _ ab l 인자를 long 형으로출력 printf( %ld, x); long 형출력 59
60 서식화된입출력 (cont d) 프로그램예제 : 변환기호사양수정자 #1 #include <stdio.h> int main(void) { int i = 1234; printf("[%d]\n", i); // 정수출력 printf("[%8d]\n", i); // 최소 8자리를잡고출력 ( 우측정렬 ) printf("[%-8d]\n", i); // 최소 8자리를잡고출력 ( 좌측정렬 ) printf("[%+8d]\n", i); // 부호출력 printf("[%08d]\n", i); // 빈칸을공백으로채움 printf("[%+08d]\n", i); } return 0; 60
61 서식화된입출력 (cont d) 프로그램예제 : 변환기호사양수정자 #2 #include <stdio.h> int main(void) { char ch = 'A'; double d = ; printf("[%c]\n", ch); // 문자출력 printf("[%8c]\n", ch); // 최소 8자리를잡고문자출력 ( 우측정렬 ) printf("[%-8c]\n", ch); // 최소 8자리를잡고문자출력 ( 좌측정렬 ) printf("[%f]\n", d); // 실수출력 printf("[%8.3f]\n", d); // 최소8자리를잡고소수점이하3자리까지실수출력 printf("[%-8.3f]\n", d); // 좌측정렬 printf("[%+8.3f]\n", d); // 부호출력 printf("[%08.3f]\n", d); // 빈칸을공백으로채움 printf("[%+08.3f]\n", d); return 0; } 61
62 서식화된입출력 (cont d) 프로그램예제 : 다양한데이터의출력방법 #include <stdio.h> int main() { char ch='a'; int i = 10; double d = 16.8; printf(" 정수형상수의출력 : %d\n", -10); printf(" 정수형변수의출력 : %d\n", i); printf(" 정수형수식의출력 : %d\n", i/3); printf( \n실수형상수를소수점형태로출력 : %lf\n", 2.5); // long double printf(" 실수형변수를지수형태로출력 : %le\n", d); // 지수형소수형태 printf(" 실수형수식을소수점형태로출력 : %lf\n", d/4); printf( \n 문자상수의출력 : %c\n", 'F'); printf(" 문자변수의출력 : %c\n", ch); printf(" 문자열상수의출력 : %s\n", " 서두옥 "); } return 0; 62
63 서식화된입출력 (cont d) 프로그램예제 : 필드옵션의여러가지사용예 #include <stdio.h> int main() { printf(" \n"); printf( %10c\n", 'A'); printf( %10d\n", 128); printf( %10lf\n", ); printf( %10le\n", ); // long double // 지수형소수형태로출력 printf( %10.3lf\n", ); // long double ( 소수점최소자릿수지정 ) printf( %10.4s\n", "Love is"); // 문자열출력 ( 출력문자수지정 ) printf( %5lf\n", ); // 최소자릿수 } return 0; 63
64 서식화된입출력 (cont d) 프로그램예제 : 진법변환프로그램 #include <stdio.h> int main() { int dec; printf(" 정수값을입력하세요 : "); scanf("%d", &dec); printf( \n입력된값은 8진수로 %#o입니다.\n", dec); printf(" 입력된값은 16진수로 %#x입니다.\n", dec); // 8 진수변환출력 // 16 진수변환출력 } return 0; 64
65 서식화된입력 서식화된입출력 (cont d) 표준형식입력함수 : scanf (scan formatted) 호출성공 : 입력에성공한필드 (field) 의개수를반환 EOF 를만나면 EOF 를반환 65
66 서식화된입출력 (cont d) 서식화된입력 (cont d) 필드명세 % 부호로시작하며정확히하나의필드 ( 변수 ) 를기술한다. 문자형식코드 (c) 를제외하고 scanf 는모든여백은건너뛴다. ( 입력의모든공백, 탭, 줄바꿈을무시한다.) 입력변환은다음과같은상황이발생할때까지입력문자를처리한다. 파일의끝 (EOF, end of file) 에도달했을때 부적절한문자를만났을때 읽은문자의수가명시된최대필드길이에도달했을때 모든필드명세에대하여대응되는변수가주소리스트에존재한다. C 에서 & 부호는주소연산자 (address operator) % <flag> <maximum width> <size> conversion-code 66
67 서식화된입출력 (cont d) 서식화된입력 (cont d) scanf 함수의서식지정자 서식지정자 %c %d, %i %o %x %u %f, %e, %g %lf, %LF %p %s %n %[] 의미입력데이터를하나의문자상수로읽어들임입력데이터를 10진수로읽어들임부호없는 8진수정수로읽어들임부호없는 16진수정수로읽어들임부호없는 10진수정수를읽어들임입력데이터를실수로읽어들임 (float) 입력데이터를실수로읽어들임 (double, long double) 포인터를읽어들임입력데이터를문자열로읽어들임읽어들인문자수를저장입력대상문자의필터링 (scanset의지정 ) 데이터형문자형정수형정수형정수형정수형실수형실수형포인터문자포인터정수포인터 67
68 서식화된입출력 (cont d) 프로그램예제 : 한문자를입력받고출력 #include <stdio.h> int main(void) { char ch; printf(" 한문자입력 : "); scanf("%c", &ch); printf(" 문자출력 : %c \n", ch); } return 0; 68
69 서식화된입출력 (cont d) 프로그램예제 : 두개의정수를입력후계산값출력 #include <stdio.h> int main(void) { int a, b; printf(" 두개의정수입력 : "); scanf("%d %d", &a, &b); printf("\n%3d + %3d = %3d\n", a, b, a + b); printf("%3d - %3d = %3d\n", a, b, a - b); } return 0; 69
70 서식화된입출력 (cont d) 프로그램예제 : 두개의실수를입력후계산값출력 #include <stdio.h> int main(void) { double f1, f2; printf(" 두개의실수입력 : "); scanf("%lf %lf", &f1, &f2); printf("\n%.2lf + %.2lf = %.2lf\n", f1, f2, f1 + f2); printf("%.2lf - %.2lf = %.2lf\n", f1, f2, f1 - f2); } return 0; 70
71 서식화된입출력 (cont d) 서식화된입력 (cont d) scanf 함수는문자열입력에적당한함수가아니다. 문자열에포함된공백문자로인해긴문장을입력받기에상당히불편 단어단위의입력에는 scanf 함수가적합할지모르겠으나, 문자열의입력은 gets 함수를사용하는편이훨씬효율적이다. scanf 함수의필터링기능 입력받을대상문자를선별 (filtering) 하기위해사용 원하지않는문자의입력을막을수있는유용한기능 %[A-Z] // 대문자 A-Z 사이의문자만받아들인다. %[A-Za-z0-9] // 영문자및숫자만받아들인다. %[^0-9] // 숫자를제외한모든문자를받아들인다. 71
72 서식화된입출력 (cont d) 서식화된입력 (cont d) scanf 함수사용예 표준입력으로부터한문자, 한정수그리고한실수 (float) 를읽는 scanf 함수를작성하라. X scanf( %c %d %f, &c, &i, &x); 표준입력으로부터 2개의분수를읽어서분자와분모를각각다른정수변수에저장하는 scanf 함수를작성하라. 14/26 26/66 scanf( %d/%d %d/%d, &n1, &n2, &n3, &n4); 72
73 서식화된입출력 (cont d) 서식화된입출력함수 (cont d) scanf 함수사용예 (cont d) 이와같은입력정보에서 - 을제외하려면... scanf( %d%*c%d%*c%d, &x, &y, &z); %*c 는키보드행버퍼의문자중에서현재읽고있는한문자를완전히제거 입력의경우오직하나의수정자 (*) 가있다 데이터를저장하지말것 을의미한다. 73
74 서식화된입출력 (cont d) 서식화된입출력함수 (cont d) scanf 함수사용예 수식을입력받고결과를아래와같이출력하려면? enter // 입력 = 30 // 출력 int a, b; char op; printf( 수식을입력하시오 : ); scanf( %d%c%d, &a, &op, &b); printf( %d %c %d = %d n, a, op, b, a+b); 데이터입력시연산자사이에공백을줄수없다. 10 enter + enter 10 // 두번째값을채입력하기도전에여기서부터결과가출력된다. 474 = 484 // 그러면서그결과는정상적이지못하다. 74
75 서식화된입출력 (cont d) 서식화된입출력함수 (cont d) scanf 함수사용예 제어문자열속에공백이포함되어있으면 scanf 함수는모든공백류문자를무시하게된다. scanf( %d %c %d, &a, &op, &b); 10 enter + enter 20 enter = 30 // 정상적인결과를출력한다. 75
76 C 프로그램구조 C 언어개요 C 언어기본문법 콘솔입출력 C 프로그램구조 수식 우선순위와결합성 혼합형형식 : 데이터형변환 논리적데이터와연산자 비트연산자 문장 76
77 수식 수식 (expression) 단일값으로변환하기위한피연산자와연산자의나열 연산자 (operator) 피연산자 (operand) 수식들은항상단일값으로변형된다. 수식의종류 일차식 (primary expression) a a 이진식 (binary expression) 피연산자 연산자 피연산자 배정식 (assignment expression) 후위식 (postfix expression) 단항식 (unary expression) 콤마식 (comma expression) 삼원식 (ternary expression) 77
78 일차식 (primary expression) 수식 (cont d) a a 식별자 7 7 상수 (2 (2 + a --3) 3) 표현식 이름 (name) a b2000 price click INT_MAX size 상수 (constant) A Clickseo 괄호식 (2 * 3 + 4) (a = 2 + b * 6) 78
79 이진식 (binary expression) 수식 (cont d) 피연사 - 연산자 - 피연산의결합에의해서구성 a a 피연산자 + 연산자 55 피연산자 79
80 이진식 (cont d) 수식 (cont d) 곱셈식 (multiplicative expression) 종류 * / % 내용두피연산자들의대수곱셈첫번째피연산자를두번째피연산자로나누는대수나눗셈 - 두피연산자가정수 정수몫 - 둘중어느한쪽의피연산자가부동소수점이면부동소수점몫첫번째피연산자를두번째피연산자로나눈나머지 (remainder) 정수곱셈 : 3 * 5 15 나눗셈 : 20 / 6 3 모듈로 : 20 % 6 2 부동소수점수 곱셉 : 3.1 * 나눗셈 : 20 / 모듈러스 (Modulus) 연산자의두피연산자들은반드시정수형태가되어야한다. 80
81 수식 (cont d) 프로그램예제 : 이진식 #include <stdio.h> int main (void) { int a = 17; int b = 5; 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; 81
82 수식 (cont d) 배정식 (assignment expression) 연산자 (=) 의오른쪽피연산자를평가하고, 그값을왼쪽변수에대입 하나의값과하나의결과 두가지형태 단일배정 (simple assignment) 혼합배정 (compound assignment) a a 변수 = 할당연산자 표현식 82
83 수식 (cont d) 배정식 (cont d) 단일배정 (simple assignment) a = 5 b = x + 1 i = i + 1 배정식에있어서왼쪽피연산자는하나의변수가되어야한다. 변수 x 의내용 변수 y 의내용 수식 수식값 수식의결과 10 5 x = y x = x = x / y 2 x = x = y % 4 1 x = 1 83
84 수식 (cont d) 배정식 (cont d) 복합배정 (compound assignment) : 단일배정에대한약칭표기 복합식 등가식 x *= y x /= y x %= y x += y x -= y x = x * y x = x / y x = x % y x = x + y x = x - y 변수 x 의내용 변수 y 의내용 수식 수식값 수식의결과 10 5 x *= y 50 x = x /= y 2 x = x %= y 0 x = x += y 15 x = x -= y 5 x = 5 만약복합배정이이진식과함께사용된다면이진식이먼저평가된다. x *= y + 3 x = x * (y + 3) 84
85 수식 (cont d) 프로그램예제 : 복합배정 #include <stdio.h> int main (void) { int x = 10, y = 5; printf("x : %2d y : %2d", x, y); printf(" x *= y : %2d", x *= y); printf(" x 의값 : %2d\n", x); x = 10; printf("x : %2d y : %2d", x, y); printf(" x /= y : %2d", x /= y); printf(" x 의값 : %2d\n", x); x = 10; printf("x : %2d y : %2d", x, y); printf(" x %%= y : %2d", x %= y); printf(" x 의값 : %2d\n", x); } return 0; 85
86 후위식 (postfix expression) 수식 (cont d) a++ 후위연산자 피연산자 함수호출 함수이름은피연산자이고연산자는이름뒤에오는괄호이다. 후위증가 (postfix increment) 와후위감소 (postfix decrement) a++ a = a + 1 a-- a = a
87 수식 (cont d) 프로그램예제 : 후위증가 #include <stdio.h> int main (void) { int a; a = 4; printf( value of a : %2d\n, a); printf( value of a++ : %2d\n, a++); printf( new value of a : %2d\n, a); } return 0; 87
88 단항식 (unary expression) 수식 (cont d) 하나의연산자와하나의피연산자로구성 단항연산자 ++a 피연산자 88
89 수식 (cont d) 프로그램예제 : 전위증가 #include <stdio.h> int main (void) { int a; a = 4; printf( value of a : %2d\n, a); printf( value of ++a : %2d\n, ++a); printf( new value of a : %2d\n, a); } return 0; 89
90 프로그램예제 : 전위증가와후위증가 #include <stdio.h> void main(void) { int a = 30, b = 30; 수식 (cont d) 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); 90
91 수식 (cont d) 단항식 (cont d) sizeof 연산자 sizeof (int) // byte 단위반환 x = sizeof (int) // sizeof 연산자의결과 ( 정수형의값 ) 를저장 sizeof ( ) // 일차식의크기를알아낼수있다. sizeof(x) 단항플러스 (unary plus) 와단항마이너스 (unary minus) 수식 +a -a +a -a 수식평가전 / 후 a의내용 수식값
92 우선순위와결합성 기능별분류 연산자 결합순서 우선순위 일차식 ( ) [ ] ->. 1 단항연산자! ~ ( 형명 ) * & sizeof 2 승제연산자 * / % 3 가감연산자 시프트연산자 << >> 5 비교연산자 < <= > >= 6 등가연산자 ==!= 7 & 8 비트연산자 ^ 9 10 논리연산자 && 조건연산자? : 13 대입연산자 = += -= *= /= %= >>= <<= &= ^= = 14 콤마연산자, 15 92
93 우선순위와결합성 (cont d) 우선순위 (precedence) 복잡한수식안에여러연산자들이평가되는경우에그순서를결정하기위해사용된다 * 4 (2 + (3 * 4)) -b++ (-(b++)) 93
94 우선순위와결합성 (cont d) 결합성 (associativity) 왼쪽결합성 (left associativity) 왼쪽에서시작하여오른쪽으로이동해가면서수식을평가하는것 3 * 8 / 4 % 4 * 5 (((3 * 8) / 4) % 4) * 5) 오른쪽결합성 (right associativity) 오른쪽에서왼쪽으로진행해가면서수식을평가하는것 3 가지형식 : 단항식, 조건부삼원식, 그리고배정식 a += b *= c -= 5 (a += (b *= (c -= 5))) 94
95 혼합형형식 묵시적형변환 (implicit type conversion) C 가자동적으로어떤형식에서다른형식으로그형태를변형시키는것 수 식 char + float int long int * double float / long double (short + long)/ float 중간형식 float long double long double long then float 모든문자들은숫자값을가지고있기때문에문자를정수와부동소수점값에더할수있다. 95
96 수식에서의형변환 혼합형형식 (cont d) C 언어는수식하나에서로다른자료형을혼합하여사용하도록지원 C 언어는내부적으로정해진자동변환규칙에따라혼합식을처리 형확장 (type promotion) 하나이상의데이터형이혼합식을구성할때 가장큰데이터형에맞춰자동으로형변환이이루어지는규칙을적용 정수형확장 (integral promotion) 수식이계산되고있을때만유효 정수형확장이일어난다고해서변수의메모리공간이실제로커지는것은아니다. 96
97 프로그램예제 : 수식에서의형변환 #include <stdio.h> int main() { char ch; int i; float f; double d; 혼합형형식 (cont d) ch = 35; i = 35000; f = 1.3; // warning C4305: '=' : truncation from 'const double ' to 'float ' /* h는식이계산되는동안 char에서 int로형이확장되고, i와계산을수행한다. 계산된결과는다시 float 형으로확장되고, f와계산을수행한다. 정수형상수 30000도 float으로확장되고, 최종적으로계산된 rvalue는다시 double로형이확장된후 d에대입된다. */ d = ch * i * f ; printf("result = %lf \n", d); return 0; } 97
98 프로그램예제 : float 으로형확장 #include <stdio.h> 혼합형형식 (cont d) int main() { short int i; float f; i = 10; f = 3.14f; /* i * f의연산도중컴파일러가 float 형의메모리공간을할당하고그값을출력할뿐이지 i의크기가실제로변하는것은아니다. */ printf("result = %f \n", i * f); } return 0; 98
99 치환에서의형변환 혼합형형식 (cont d) 오른쪽 rvalue 의값이왼쪽 lvalue 의데이터형으로변환되는규칙 데이터형이큰 rvalue 값을강제로 lvalue 에대입하고자한다면데이터의 손실 (demotion) 을감수해야한다. C 언어가어셈블리어수준에서의저수준프로그래밍을효과적으로지원할수 있어야하기때문이다. 99
100 혼합형형식 (cont d) 프로그램예제 : 정수형을문자형으로치환하는경우 #include <stdio.h> int main() { short int i; char ch; i = 128; // warning C4244: '=' : conversion from 'short ' to 'char ', possible loss of data ch = i; // 데이터손실발생 printf("i = %d, ch = %d \n", i, ch); } return 0; 100
101 혼합형형식 (cont d) 프로그램예제 : 실수형을정수형으로치환하는경우 #include <stdio.h> int main() { short int i; float f; f = 3.14f; // warning C4244: '=' : conversion from 'float ' to 'short ', possible loss of data i = f; // 소수부가잘려나간다. printf("f = %f, i = %d \n", f, i); } return 0; 101
102 혼합형형식 (cont d) 명시적형변환 (explicit type conversion) 임의로어떤형식에서다른형식으로데이터를변환시킨다. cast 수식연산자 (cast expression operator) (float) a // 피연산자는단항식이어야한다. (float) (x + y) // 두개의정수합을하나의부동소수로변형 average = (float) totalscores / numscores; (float) (a / 10); // a 가 3 이라면결과값은 0.0 (float) a/ 10 // 부동소수결과는숫자들중하나를명시적형변환 102
103 형변환연산자 혼합형형식 (cont d) 캐스트 (cast) 연산자를이용하여강제형변환 (type) value; float f = printf( %d, (int) f); 103
104 혼합형형식 (cont d) 프로그램예제 : 캐스트연산자에의한형변환과치환문에서의형변환차이점 #include <stdio.h> int main() { double r1, r2; int result1, result2; r1 = 3.4; r2 = 2.1; // warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data result1 = r1 * r2; // 치환문에의한형변환 result2 = (int) r1 * (int) r2; // 캐스트연산자에의한강제형변환 printf("result1 = %d\n", result1); printf("result2 = %d\n", result2); return 0; } 104
105 논리적데이터와연산자 논리적데이터 (logical data) 실생활에서 예 - 아니요 와같은데이터 컴퓨터과학에서는참 (true) 과거짓 (false) 을사용한다. 105
106 논리적데이터와연산자 (cont d) 논리연산자 (logical operators) not 연산자 (!) 15 의선행을갖는단항연산자 (unary operator) 참값 (nonzero) 을거짓 (zero) 으로바꾸고, 거짓값 (0) 을참 (1) 으로바꾼다. and 연산자 (&&) 5 의선행을갖는이진연산자 (binary operator) or 연산자 ( ) 4 의선행을갖는이진연산자 만약값이 0 이면, 논리값이거짓으로사용된다. 만약값이 0 이아니면, 논리값은참으로사용된다. 106
107 논리적데이터와연산자 (cont d) 논리식평가 : 두가지방법 첫번째방법 결과가결정되기전에수식이완전히평가되어야한다. 2 가지경우처럼반드시참과거짓이된다하라도전체수식이평가되어야한다. 두번째방법 결과값이알려지자마자그결과값을설정것이다. 단축방식 (short-circuit fashion) 2가지경우처럼반드시참과거짓이된다면두번째식을평가하지않는다. C 에있어서평가는이러한단축방식을사용한다. 107
108 논리적데이터와연산자 (cont d) 프로그램예제 : 논리식 #include <stdio.h> int main (void) { int a = 5; int b = -3; int c = 0; printf(" %2d && %2d is %2d\n", a, b, a && b); printf(" %2d && %2d is %2d\n", a, c, a && c); printf(" %2d && %2d is %2d\n", c, a, c && a); printf(" %2d %2d is %2d\n", a, c, a c); printf(" %2d %2d is %2d\n", c, a, c a); printf(" %2d %2d is %2d\n", c, c, c c); printf("!%2d &&!%2d is %2d\n", a, c,!a &&!c); printf("!%2d && %2d is %2d\n", a, c,!a && c); printf(" %2d &&!%2d is %2d\n", a, c, a &&!c); return 0; } 108
109 논리적데이터와연산자 (cont d) 관계연산자 (relational operators) 두개의피연산자를받아서서로비교하는이진연산자들이다. 결과는논리적데이터이다 ( 즉, 항상참 (1) 과거짓 (0) 이다 ). 관계연산자 < <= > >= ==!= 의미 less than less than or equal greater than greater than or equal equal not equal 우선순위
110 논리적데이터와연산자 (cont d) 프로그램예제 : 관계연산자 #include <stdio.h> int main (void) { int a = 5; int b = -3; printf(" %2d < %2d is %2d\n", a, b, a < b); printf(" %2d == %2d is %2d\n", a, b, a == b); printf(" %2d!= %2d is %2d\n", a, b, a!= b); printf(" %2d > %2d is %2d\n", a, b, a > b); printf(" %2d <= %2d is %2d\n", a, b, a <= b); printf(" %2d >= %2d is %2d\n", a, b, a >= b); } return 0; 110
111 비트연산자 비트연산자 비트단위의정밀한데이터제어를위해사용 char 를포함한정수계산이가능한정수형데이터에서만동작 ( 주의 ) 피연산자로 double 이나 float 과같은부동형을사용할수없다. 구분 연산자 의미 비트논리연산자 시프트연산자 ~a a & b a b a ^ b a << n a >> n 1의보수연산 a와 b의비트단위논리곱 (AND) a와 b의비트단위논리합 (OR) a외 b의비트단위배타적논리합 (XOR) a의각비트를왼쪽으로 n만큼이동 a의각비트를오른쪽으로 n만큼이동 111
112 ~ : 보수연산자 1 s complement operator 비트연산자 (cont d) 단항연산자로각각의데이터비트를반대로바꾼다. 1 은 0 으로 0 은 1 로바꾼다 ( 부호비트도반전 ). & : 논리곱 비트단위논리곱 (AND) 비트단위의논리곱 & 는특정비트값을 0 으로만들기위해주로사용 k = k & 0x00FF; : k : 0x00FF : k & 0x00FF 논리곱 112
113 비트연산자 (cont d) : 논리합 비트단위논리합 (OR) 비트단위의논리합 은특정비트값을 1 로만들기위해주로사용 ^ : 배타적논리합 k = k 0xFF00; : k : 0xFF : k 0xFF00 논리합 비트단위배타적논리합 (XOR) 각각의비트가서로다를때 1이된다. 비트단위의배타적논리합은특정비트를반전시키기위해서사용한다. 배타적논리합 k = k ^ 0xFF00; : k : 0xFF : k ^ 0xFF00 113
114 비트연산자 (cont d) <<, >> : 좌측시프트, 우측시프트연산자 시프트연산자 주어진자릿수만큼비트를왼쪽또는오른쪽으로옮길수있는연산자 비트연산자의대상 : 정수 float 형이나 double 형에비트연산을할수없다. a = a << 8; 원래있던것은잘려나간다 하위 8bit 가왼쪽으로이동되어옴 이동된자리는 0 으로채워진다 114
115 비트연산자 (cont d) <<, >> : 좌측시프트, 우측시프트 l 부호있는정수인경우 a = a >> 1; ( 단, a 는 -1 : ) 잘려나간다 부호비트가이동하면빈자리는부호비트로복사된다. 2 부호없는정수인경우 a = a >> 1; ( 단, a 는 -1 : ) 잘려나간다 부호비트는 0 으로채워진다. 115
116 프로그램예제 : 비트연산자 #include <stdio.h> 비트연산자 (cont d) int main(void) { int a = 0x1111, b = 0xffff; 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; 116
117 비트연산자 (cont d) 프로그램예제 : 비트연산자 -- 좌측시프트연산자 #include <stdio.h> int main(void) { int a = 30; // 왼쪽으로 1비트씩 shift 할때마다값은 2배가된다. printf("a = %d\n", a); printf("a << 1 = %d\n", a << 1); printf("a << 2 = %d\n", a << 2); printf("a << 3 = %d\n", a << 3); printf("a << 4 = %d\n", a << 4); } return 0; 117
118 비트연산자 (cont d) 프로그램예제 : 비트연산자 -- 우측시프트연산자 #include <stdio.h> int main(void) { int a = 30; // 오른쪽으로 1비트씩 shift 할때마다값은 1/2이된다. printf("a = %d\n", a); printf("a >> 1 = %d\n", a >> 1); printf("a >> 2 = %d\n", a >> 2); printf("a >> 3 = %d\n", a >> 3); printf("a >> 4 = %d\n", a >> 4); } return 0; 118
119 문장 문장 (statement) 수식문 (expression statement) 복합문 (compound statement) 레이블문 (labeled statement) 선택문 (selection statement) 반복문 (iterative statement) 점프문 (jump statement) 119
120 문장 (cont d) 문장 (cont d) 수식문 (expression statement) 수식뒤에세미콜론 (;) 을놓음으로써문장으로변환된다. a = 2; a = b = 3; b; 3; ; ioresult = scanf( %d, &x); // scanf() 의반환된값을저장 120
121 문장 (cont d) 문장 (cont d) 복합문 (compound statement) 영 (zero) 또는그이상의문장으로구성되는코드단위 : 블록 (block) { int x; int y; int z; 모든 C 함수는함수몸체로알려진복합문을포함하고있다. } x = 1; y = 2;
122 참고문헌 [1] 김일광, C 프로그래밍입문, 한빛미디어, pp [2] 윤성우, 열혈강의 C 프로그래밍, 프리렉, pp [3] 김진외 7 인공역, 구조적프로그래밍기법을위한 C, 인터비젼, pp [4] Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language 2/e, 대영사,
OCW_C언어 기초
초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향
More information< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>
Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법
More informationMicrosoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt
변수와상수 1 변수란무엇인가? 변수 : 정보 (data) 를저장하는컴퓨터내의특정위치 ( 임시저장공간 ) 메모리, register 메모리주소 101 번지 102 번지 변수의크기에따라 주로 byte 단위 메모리 2 기본적인변수형및변수의크기 변수의크기 해당컴퓨터에서는항상일정 컴퓨터마다다를수있음 short
More informationMicrosoft 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 informationMicrosoft 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 informationMicrosoft 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 informationMicrosoft 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 informationMicrosoft PowerPoint - 01_(C_Programming)_(Korean)_C_Language-Overview
C Programming C 언어개요 (C Language Overview) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 C 언어개요 C 언어기본문법 콘솔입출력 C 프로그램구조 2 C 언어개요 C 언어개요 C 언어의역사및특징 C 프로그램단계 C 언어기본문법 콘솔입출력 C 프로그램구조 3 C 언어의역사및특징 (1/3)
More informationMicrosoft PowerPoint - 03_(C_Programming)_(Korean)_Pointers
C Programming 포인터 (Pointers) Seo, Doo-Ok Clickseo.com clickseo@gmail.com 목 차 포인터의이해 다양한포인터 2 포인터의이해 포인터의이해 포인터변수선언및초기화 포인터연산 다양한포인터 3 주소연산자 ( & ) 포인터의이해 (1/4) 변수와배열원소에만적용한다. 산술식이나상수에는주소연산자를사용할수없다. 레지스터변수또한주소연산자를사용할수없다.
More informationMicrosoft 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 informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 3 장 : 변수와데이터형 2012 년 이은주 학습목표 변수와상수의개념에대해알아본다. 리터럴상수, 매크로상수, const 변수에대해알아본 다. C 언어의데이터형에대해알아본다. 2 목차 변수와상수 변수 상수 데이터형 문자형 정수형 실수형 sizeof 연산자 3 변수와상수 변수 : 값이변경될수있는데이터 상수 : 값이변경될수없는데이터
More information1.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 informationuntitled
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 informationMicrosoft 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 information4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자 (operand) 로구성 수식은평가 (evaluate) 되어최종적으로 1 개의결과값이됨 피연산자 : 상수, 변수, 또다른수식 sum - 10 (a+b) / 2 연산자 2
CHAPTER 04. 연산자 수식과대입문의개념을이해한다. 연산자의종류와기능에대해살펴본다. 대입, 산술, 복합대입, 관계, 논리, 조건연산자증감, 비트, 형변환, 콤마, 주소, sizeof 연산자 연산자의우선순위와결합방향을이해한다.. 형변환원리, 종류, 필요성, 사용법을살펴본다. 4.0 개요 p.116 수식 (expression) 연산자 (operator) 와피연산자
More informationMicrosoft 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 informationMicrosoft PowerPoint - C프로그래밍-chap03.ppt [호환 모드]
Chapter 03 변수와자료형 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 변수와자료유형 변수 프로그램에서자료값을임시로기억할수있는저장공간을변수 (variables) 변수 (Variables) 는컴퓨터의메모리인 RAM(Random Access Memory) 에저장 물건을담는박스라고생각한다면박스의크기에따라담을물건이제한됨
More informationMicrosoft PowerPoint - c2.ppt
프로그램과표준입출력 프로그램 (program) 자료를입력받아서이를처리하여출력을하는일을수행함 2 장 C 언어의기초 입력 프로그램 ( 처리 ) 출력 식별자, 예약어 자료형 상수와변수 수식 연산자 : 산술연산자 자료형변환 표준입출력 (standard input and output: stdio) 표준입력 : 키보드입력 표준출력 : 모니터또는터미널로출력 (cf) DOS,
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
비트연산자 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 informationPowerPoint 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 informationC++ Programming
C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator
More informationMicrosoft PowerPoint - chap06-2pointer.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.
More informationABC 2장
3 장 C 프로그램을이루는구성요소 김명호 내용 주석문 토큰 키워드 식별자 상수 문자열상수 구두자 1 구문 Syntax 올바른프로그램을만들수있게하는규칙 컴파일러 C 프로그램이구문에맞는지검사 오류가있다면, 오류메시지출력 오류가없다면, 목적코드생성 전처리기 컴파일러이전에호출 2 컴파일러 컴파일과정 C 프로그램 토큰으로분리 토큰을목적코드로변환 토큰종류 : 키워드,
More information슬라이드 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 information1.1.1 컴퓨터의 구성 p.19
교육용프로그래밍언어 C 언어 입력과출력, 연산자 강사 : 김희진 1 contents 표준출력함수 printf, (putchar, puts) 의특징과사용법 표준입력함수 scanf, (gets) 의특징과사용법 printf 와 scanf 함수에서사용되는변환명세이해 수식과대입문의개념이해연산자의종류와기능 대입, 산술, 복합대입, 관계, 논리, 조건연산자증감, 형변환,
More informationMicrosoft PowerPoint - chap-03.pptx
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 컴퓨터프로그래밍기초 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C프로그램을이루는구성요소들을살펴봅니다. 컴퓨터프로그래밍기초 2 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에
More information프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어
개나리 연구소 C 언어 노트 (tyback.egloos.com) 프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어먹고 하더라구요. 그래서,
More information프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음
프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y
More information<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력
More informationMicrosoft 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 informationC 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습
C 언어의구성요소인상수, 변수, 입 출력함수에 대하여학습 구성요소 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 예 /* 두개의숫자의합을계산하는프로그램 */ #include { int main(void) int x; // 첫번째정수를저장할변수 int y; // 두번째정수를저장할변수
More informationK&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 informationMicrosoft PowerPoint - 2주차-1차시 (강의자료) ch01 - C Programming 기초 (part 2)
일반적인프로그램의기본구성형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력 데이터처리 결과출력 1-23 덧셈프로그램 #1 주석 전처리기지시어 /* 두개의숫자의합을계산하는프로그램 */ #include 함수 int main(void) { int x; int y; int sum;
More information금오공대 컴퓨터공학전공 강의자료
C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include
More information0. 표지에이름과학번을적으시오. (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 informationMicrosoft PowerPoint - Lesson2.pptx
Computer Engineering g Programming g 2 제 3 장 C 프로그래밍구성요소 Lecturer: JUNBEOM YOO jbyoo@konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() *
More informationMicrosoft 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본 강의에 들어가기 전
C 기초특강 변수, 타입, 정수, 실수 상수 상수 (constant) #define MAX_FLOOR 100 프로그램헤더나앞부분에존재 변수의이름 ( 식별자 ) 와같은규칙을따르지만, 일반적으로대문자와 _ 로만구성 프로그램가독성을높이고, 일관된수정을위해사용 프로그램중간에갑자기등장하는임의의숫자는이해도를떨어뜨림 -> 반드시의미있는상수를이용해야함 Preprocessor
More informationABC 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 informationMicrosoft PowerPoint - chap06-1Array.ppt
2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어
More information11장 포인터
누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리
More informationMicrosoft PowerPoint - chap-05.pptx
쉽게풀어쓴 C 언어 Express 제 5 장수식과연산자 컴퓨터프로그래밍기초 이번장에서학습할내용 * 수식과연산자란? * 대입연산 * 산술연산 * 논리연산 * 관계연산 * 우선순위와결합법칙 이번장에서는수식과연산자를살벼봅니다. 컴퓨터프로그래밍기초 2 수식 수식 (expression) x + y x*x + 5*x + 6 (principal * interest_rate
More informationMicrosoft PowerPoint - Perpect C 02.ppt [호환 모드]
02 C 프로그래밍기초 충남대학교이형주 1 C 프로그램구조 콘솔응용프로그램 2 프로그램실행순서 C 프로그램은여러함수의조합으로구성 함수란정해진규칙에의하여일련의작업을수행하는프로그램의단위 실행순서 main 함수는프로그램이실행되면가장먼저시작되는부분 모든함수내부에서는위에서아래로, 좌에서우로, 문장이위치한순서대로실행 3 전처리기 전처리기 (preprocessor) 미리처리하는프로그램으로,
More information쉽게 풀어쓴 C 프로그래밍
제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계 ), 결과를화면에출력 ( 출력단계 ) 한다. 데이터입력
More informationMicrosoft 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 informationMicrosoft PowerPoint - chap-04.pptx
쉽게풀어쓴 C 언어 Express 제 4 장변수와자료형 컴퓨터프로그래밍기초 1 이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살벼봅니다. 컴퓨터프로그래밍기초 2 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간
More informationPowerPoint 프레젠테이션
Chapter 12 표준입출력과파일입출력... 1. 표준입출력함수 2. 파일입출력함수 1. 표준입출력함수 표준입출력함수 표준입력 (stdin, Standard Input) : 키보드입력 표준출력 (stdout, StandardOutput) : 모니터출력 1. 표준입출력함수 서식화된입출력함수 printf(), scanf() 서식의위치에올수있는것들 [ 기본 11-1]
More information슬라이드 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 informationPowerPoint 프레젠테이션
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歯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 informationMicrosoft PowerPoint - chap-04.pptx
쉽게풀어쓴 C 언어 Express 제 4 장변수와자료형 이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살벼봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다.
More informationuntitled
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쉽게 풀어쓴 C 프로그래밍
이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다. 78 90 56
More information슬라이드 1
-Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역
More informationPowerPoint Presentation
컴퓨터프로그래밍 Computer Programming 04 전처리와입출력 목차 1. 전처리 2. 출력함수 printf() 3. 입력함수 scanf() 3 1. 전처리 전처리개요 전처리기역할 컴파일 compile 전에전처리기 preprocessor 의전처리 preprocess 과정이필요 결과인전처리출력파일을만들어컴파일러에게보내는작업을수행 전처리지시자preprocess
More informationint 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쉽게 풀어쓴 C 프로그래밍
누구나즐기는 이번장에서학습할내용 변수와상수의개념이해 자료형 정수형 실수형 문자형 이번장에서는변수와각종자료형을살벼봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다. 변수 = 상자 변수는물건을저장하는상자와같다. int 데이터 변수의타입
More information[ 마이크로프로세서 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 informationMicrosoft 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 informationJAVA 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 information1.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슬라이드 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 informationPowerPoint 프레젠테이션
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 informationKNK_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프로그램의실행화면 주석 (comment) 두수의합 : 300 /* 두개의숫자의합을계산하는프로그램 */ 주석은코드를설명하는글입니다. 주석 3 가지방법의주석 주석의예 /* 한줄로된주석 */ /* 저자 : 홍길동날짜 : 2013.
쉽게풀어쓴 C 언어 Express 제 3 장 C 프로그램구성요소 이번장에서학습할내용 * 주석 * 변수, 상수 * 함수 * 문장 * 출력함수 printf() * 입력함수 scanf() * 산술연산 * 대입연산 이번장에서는 C 프로그램을이루는구성요소들을살펴봅니다. 일반적인프로그램의형태 덧셈프로그램 #1 데이터를받아서 ( 입력단계 ), 데이터를처리한후에 ( 처리단계
More informationC 프로그래밍 언어 입문 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<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 informationuntitled
if( ) ; if( sales > 2000 ) bonus = 200; if( score >= 60 ) printf(".\n"); if( height >= 130 && age >= 10 ) printf(".\n"); if ( temperature < 0 ) printf(".\n"); // printf(" %.\n \n", temperature); // if(
More informationPowerPoint 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 informationC 프로그램의 기본
C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석
More information03 상수, 변수, 자료형
Part 03 상수, 변수, 자료형 1 이장의내용 자료형이란무엇인가? 상수와변수 정수형 부동소수형 문자형 2 3.1 자료형이란무엇인가? 3 자료형이란무엇인가? 자료형 (data type) 프로그램에서표현혹은저장하는데이터의종류혹은유형 C 언어의자료형 C 언어는 1 개의문자형, 4 개의정수형, 3 개의부동소수형을제공 4 3.2 변수 /3.3 상수 5 변수 변수
More informationOCW_C언어 기초
초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드
More informationMicrosoft 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 informationMicrosoft 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 informationA 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 informationMicrosoft 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쉽게 풀어쓴 C 프로그래밍
이번장에서학습할내용 * 변수와상수의개념이해 * 자료형 * 정수형 * 실수형 * 문자형 * 기호상수사용 * 오버플로우와언더플로우이해 이번장에서는변수와각종자료형을살펴봅니다. 변수 Q) 변수 (variable) 이란무엇인가? A) 프로그램에서일시적으로데이터를저장하는공간 Q) 변수는왜필요한가? A) 데이터가입력되면어딘가에저장해야만다음에사용할수있다. 78 90 56
More informationC 언어 프로그래밊 과제 풀이
과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍
More information중간고사
중간고사 예제 1 사용자로부터받은두개의숫자 x, y 중에서큰수를찾는알고리즘을의사코드로작성하시오. Step 1: Input x, y Step 2: if (x > y) then MAX
More information13 주차문자열의표현과입출력
13 주차문자열의표현과입출력 문자표현방법 문자열표현방법 문자열이란무엇인가? 문자열의입출력 문자처리라이브러리함수 표준입출력라이브러리함수 C 언어를이용하여문자열을처리하기위해서는문자형의배열이나포인터를사용하게된다. 문자열을처리하는동작으로는단순하게문자열의입력이나출력기능이외에도문자열의복사나치환, 문자열의길이를구하거나문자열을비교하는기능등많은기능을필요로한다. 그러나이러한기능들을모두구현하기란매우까다로우며,
More informationMicrosoft PowerPoint - CP_02_Convert_To_C_02_Step.pptx
문제해결중심 C 프로그래밍 제2장순서도를 C로변환하기 ( 순차구조 ) 강릉원주대학교 학습목표 학습목표 이장은1장에서배운순서도를 C 언어프로그램으로변환하는방법을배우고, 이를익숙하게습득하는것을목표로하며, 다음내용을배운다. 학습내용 C 언어를이용한입력과출력방법 분기, 반복, 복합순서도를 C 언어로변환하는방법 C 언어의자료형, 연산자, 제어문사용방법 GangneungWonju
More informationMicrosoft 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슬라이드 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 informationMicrosoft PowerPoint - lec3.ppt
2008 학년도 1 학기 상지대학교컴퓨터정보공학부 고광만 강의내용 연산자 (operator) 연산자종류연산자우선순위자료형변환 문장 (statement) 배정문 혼합문 제어문조건문, 반복문, 분기문 표준입출력 2 연산자 식 (expression) 의의미를결정 식은연산자 (operator) 와피연자 (operand) 로구성식의값에따라산술식, 관계식, 논리식으로구분
More informationMicrosoft PowerPoint - 제11장 포인터
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More informationMicrosoft PowerPoint - chap12-고급기능.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 informationChapter_06
프로그래밍 1 1 Chapter 6. Functions and Program Structure April, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 이장의강의목표 2 문자의입력방법을이해한다. 중첩된 if문을이해한다. while 반복문의사용법을익힌다. do 반복문의사용법을익힌다.
More informationMicrosoft PowerPoint - Chapter_08.pptx
프로그래밍 1 1 Chapter 8. Pointers May, 2016 Dept. of software Dankook University http://embedded.dankook.ac.kr/~baeksj 포인터의개념 (1/6) 2 포인터란 : 다른객체를가리키는변수 객체의메모리주소를저장하는변수 기호적방식 (symbolic way) 으로주소사용 포인터와관련된연산자
More information<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슬라이드 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 informationPowerPoint 프레젠테이션
Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐
More informationMicrosoft PowerPoint - chap4_2013 [호환 모드]
Part 04 입출력과전처리 1 전처리기지시자 전처리기 (preprocessor) 컴파일러가프로그램을번역하기 ' 전 ' 에소스프로그램을 ' 처리 ' 하는프로그램 전처리기지시자 (preprocessor directive) 전처리기에게특정작업을지시하는가짜명령어 ( 의사명령어 ) # 으로시작함 중요한전처리기지시자 #include: 다른파일의내용을현재파일에포함시킴
More informationMicrosoft 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목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2
제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해
More informationMicrosoft PowerPoint - chap11-포인터의활용.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 informationMicrosoft PowerPoint - 제11장 포인터(강의)
쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조
More information제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.
제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터
More informationMicrosoft PowerPoint - chap-11.pptx
쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.
More informationuntitled
시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000
More information