C Language Programming.hwp

Size: px
Start display at page:

Download "C Language Programming.hwp"

Transcription

1 Chapter 1. C 프로그래밍시작 1. C 언어란? - 프로그램을만들기위한각종언어들중한가지의언어 ( 우리가말을할때한국어를사용하고미국사람은영어, 일본사람을일본어를사용한다. 이처럼언어라는것은오직하나만있는것이아니듯프로그래밍언어도마찬가지로다양한언어가존재하는데그중한가지언어이다 ) - 사람과컴퓨터가대화하기위한매개체 ( 사람은컴퓨터에게어떤작업을시키길원하고컴퓨터는사람이시킨작업을수행해야한다. 그러나컴퓨터란 0,1만을이해할수있는기계이다. 즉, 사람은컴퓨터에게 0,1로이루어진명령을통하여작업을지시해야한다. 하지만사람이 0,1로이루어진명령을사용하기엔너무나어렵다. 그래서등장을한것이프로그래밍언어이다. 우리는프로그래밍언어를이용하여컴퓨터에게명령을전해줄수있는것이다. 사람은프로그래밍언어를알고컴퓨터는 0,1로이루어진명령 ( 기계어 ) 를알고있다. 하지만서로의언어를이해할수는없다, 그래서중간에서통역사역할을해주는장치가있는데그것을우리는컴파일러 (Compiler) 라고부른다, 컴파일러는프로그래밍언어와기계어를모두알고있어사람과컴퓨터의통역사역할을해주는것이다.) 사람이이해해기쉬운프로그래밍언어를 High-Level Language( 고급언어 ), 기계가이해하기쉬운프로그래밍언어를 Low-Level Language( 저급언어 ) 라고불리움 2. C 언어의역사와특징 Ⅰ. C 언어의역사 - C언어는 1971년경 Denis Ritchie와 Ken Thompson이라는사람이 UNIX라는운영체제시스템개발을위해설계한언어 - C언어란 B언어에서발전된언어이다그래서 C언어라는이름이붙게됨 ALGOL 60(1960년 )-> CPL(1963년 ) -> BCPL(1969년 ) -> B언어 (1970년) -> C언어 (1971년) 1

2 Ⅱ. C 언어의특징 - 절차지향적프로그래밍언어 - 높은이식성 - 높은효율성 - 상대적으로배우기가쉽지않음 3. 프로그램작성과정 - 프로그램작성 ( 소스파일 ) -> 컴파일 -> 링킹 -> 결과물생성 ( 실행파일 ) Ⅰ. 프로그램작성 - Mirosoft Visual Studio 2008 기준 1 작업공간 ( 솔루션 ) 만들기 ( 파일 -> 새로만들기 -> 프로젝트 ) 2

3 2 새프로젝트생성 ( Win32 -> Win32 콘솔응용프로그램 -> 이름입력후확인 ) ( 콘솔응용프로그램, 빈프로젝트선택후마침 ) 3

4 3 새프로젝트에소스파일추가 ( 소스파일우측클릭 -> 추가 -> 새항목 ) ( 템플릿 -> C++ 파일선택 -> 이름입력후확인 ) 이름입력시확장자를주지않으면 C++ 소스파일로생성되고.c 라는확장자를주면 C 소스파일로생성됨 4

5 3 소스작성 ( 현재는프로그램작성과정을확인하기위함이므로소스는예제와같이작성하고소스설명은뒤에서다시자세히함 ) #include <stdio.h> int main(void) { printf("hello World!\n"); return 0; } 5

6 Ⅱ. 컴파일 (Compile) - 컴퓨터가이해할수있는기계어로변환하는과정 ( 빌드 -> 컴파일 ) Ⅲ. 링크 (Link) - 컴파일된파일 ( 오브젝트파일 ) 을라이브러리파일과연결시켜주는단계 ( 빌드 -> 솔루션빌드 ) Ⅳ. 결과물 ( 실행파일 ) 실행 - 실행파일을실행하는방법은두가지가있다, 첫번째 Debug 폴더내에존재하는 [ 솔루션이름 ].exe 를실행하는방법, 두번째디버그의디버깅하지않고시작을선택 6

7 첫번째 : 명령프롬프트실행 ( 윈도우키 +R) -> 경로이동 -> [ 솔루션이름 ].exe 실행 두번째 : 디버그 -> 디버깅하지않고실행 7

8 4. 프로그램기본구성 Ⅰ. 함수 - 특정인자를받아결과값을반환하는개체 - C 언어프로그램은하나이상의함수가모여있는프로그램 Ⅱ. 함수의형태 - 함수이름 : 실행하고자하는함수의이름ㅤㅤ - 입력형태 : 함수를실행할때전달할인자의형태 - 출력형태 : 함수가실행되고종료될때반환되는값의형태 - 함수의몸체 : 함수의실행내용 Ⅲ. 메인함수 - C언어프로그램의가장핵심이되는함수 - 메인함수의호출은프로그램의시작을의미하고메인함수의끝은프로그램의종료를의미함 - 일반적인함수호출은사용자가하지만메인함수의호출은운영체제가함 Ⅳ. 헤더파일 - 함수의선언이포함되어있는파일 - 확장자는.h 를사용 8

9 - 사용자는미리정의되어있는함수를사용하기위해서는그함수가선언되어있는헤더파일을포함해야함 - 예를들어 printf라는함수를사용하기위해서는 printf가선언되어있는 stdio.h 라는헤더파일을포함해야함 stdio : standard input output 의약자로표준입출력관련함수들이선언되어있음 Ⅴ. 주석 (comment) - 컴파일의대상이되지않는코드, 즉프로그래머가코드중간에메모를하기위한용도로사용 - 주석은내가만든코드를다른사람이봤을때이해하기쉽게하기위함도있지만내가만든코드일지라도시간이지나면잊어버릴수있기때문에적절한주석은필수임 - 주석의사용방법 여러줄에걸쳐사용시 : /* 주석내용 */ 단일행에사용시 : // 주석내용 Ⅵ. 특수문자 (Escape Sequence) - 키보드에나타나지않는문자나화면에출력되지않는제어문자를사용하기 위한문자 - \( 백슬러시 ) 로시작됨 \ 기호가나타나지않는환경은 기호가백슬러시임 - 특수문자의종류 문자 기능 문자 기능 \n 다음줄로이동 (New Line) \t 탭간격만큼이동 \r 줄의처음으로이동 (Carriage return) \a 내부스피커를통해경고음출력 \b 왼쪽으로커서이동 (backspace) \0 널 (NULL) 문자 \\ 백슬러시 (\) 문자출력 \" 큰따옴표출력 9

10 Chapter 2. 데이터형, 변수, 상수 1. 데이터형 Ⅰ. 데이터형이란? - 데이터의형태 ( 정수, 실수, 문자 ) 를구분하며, 데이터의범위나부호의사용여부 등을결정짓는것 Ⅱ. 정수형 - 소수점이하를표현하지못하는데이터형 - unsigned 가붙으면부호가없는데이터형을의미함 데이터형 범위 크기 short -32,768 ~ Byte int -2,147,483,648 ~ 2,147,483,647 4Byte long -2,147,483,648 ~ 2,147,483,647 4Byte unsigned short 0 ~ 65,535 2Byte unsigned int 0 ~ 4,294,967,295 4Byte unsigned long 0 ~ 4,294,967,295 4Byte int 형의크기는정해져있지않다, 32bit 환경일경우컴파일러에따라 2Byte 또는 4Byte 일수있다. Ⅲ. 실수형 - 소수점이하를표현할수있는데이터형 - 실수데이터형에는 unsigned를사용할수없음 - 실수는부동소수점방식으로표현함 - 부동소수점에는오차가존재하는데, 이때문에컴퓨터는정확한실수값을표현할수없음 데이터형 범위 크기 float 3.4 X ~ 3.4 X Byte double 1.7 X ~ 1.7 X Byte Ⅳ. 문자형 - 컴퓨터는 0,1의 2진수만을표현하기때문에문자를표현할수없음 - ASCII 코드를이용하여문자를표현 ASCII(American Standard Code for Information Interchange) : 미국표준협회 (ANSI, American National Standard Institute) 에서제정한문자의표현에대한약속 ( 표준 ) 데이터형 범위 크기 char -128 ~ 127 1Byte unsigned char 0 ~ 255 1Byte Ⅴ. 데이터의표현방식 10

11 1 2진수, 10진수, 16진수 - 2진수 : 두개의기호를이용해서값 ( 데이터 ) 를표현하는방식 - 10진수 : 열개의기호를이용해서값 ( 데이터 ) 를표현하는방식 - 16진수 : 열여섯개의기호를이용해서값 ( 데이터 ) 를표현하는방식 2 데이터의표현단위 ( 비트, 바이트 ) - 비트 (bit) : 컴퓨터가나타내는데이터의최소단위로서 2진수값하나를저장할수있는메모리공간을의미 - 바이트 (byte) : 데이터처리또는문자의최소단위로서 8개의비트가모여하나의바이트가구성됨 참고사항 - 1 nibble( 니블 ) : 1byte의반을의미, 즉 4bit의크기를가진단위 - 1 word( 워드 ) : CPU가처리할수있는데이터의크기로서 32bit CPU는 1word=32bit 이고 64bit CPU는 1word=64bit를의미 11

12 3 정수의표현방식 - 모든정수의가장왼쪽에있는비트는 MSB(Most Significant Bit) 라는비트 - MSB란부호를나타내기위한영역으로서 0이면양수, 1이면음수를의미함 - MSB비트를제외한나머지비트는크기를나타내는데사용 4 음의정수의표현방식 - 음의정수는우리가생각하는일반적인방식으로사용하면안됨 - 음의정수를표현시에는 2 의보수라는것을사용 - 2 의보수란 1 의보수에 1 을더한값 (1 의보수는 0 과 1 을뒤집은값 ) 12

13 5 실수의표현방식 - 실수를표현하는방식을정수표현방식과같이표현하면표현할수있는 범위가매우작음 - 넓은범위의실수를표현하기위하여정의된수식을이용하여사용 - 정의된수식을이용하면넓은범위의실수를표현가능하지만오차존재한다는 단점이있음, 이오차를 부동소수점오차 라부름 부동소수점오차에대한문제는컴퓨터의문제이기때문에 C 언어에국한된 문제가아님, 따라서다른프로그래밍언어들도같은문제를가지고있음 2. 변수 Ⅰ. 변수란? - 데이터를저장할수있는메모리공간에붙여진이름 ( 메모리공간자체 ) 을의미함 - 변수는정수형변수와실수형변수로나뉨 정수형변수 : char형, int형, long형 실수형변수 : float형, double형 Ⅱ. 변수선언 - 변수를선언하면메모리에공간이할당되고변수이름으로그공간에접근할수있음 - 선언되지않은변수를사용하면에러가발생함 - 변수의선언은항상함수의선두부분에해야함 - 변수를선언하면할당된메모리공간에의미없는값 (= 쓰레기값 ) 이들어있음 데이터형변수명 ; ex) int val; 변수선언시이름은반드시의미를지니는이름을주려고노력해야함, 또한연산을수행하는모든문장들은세미콜론 (;) 으로끝나야함 13

14 Ⅲ. 변수이름작성규칙 1 변수의이름은알파벳, 숫자, 언더바 (_) 로구성 2 C언어는대소문자를구분, 따라서변수 Val 과 val은서로다른변수임 3 변수의이름은숫자로시작할수없고, 키워드 ( 예약어 ) 를사용하는것도불가능 4 공백이나특수기호포함될수없음 잘못사용된변수이름 int 1st int mail@address int my name int for 잘못된이유변수의이름이숫자로시작변수이름에특수기호사용변수이름에공백사용변수이름에키워드 ( 예약어 ) 사용 키워드 ( 예약어 ) - C99 기준 auto _Bool break case char _Complex const continue default restrict do double else enum extern float for goto if _Imaginary inline int long register return short signed sizeof static struct switch typedef union unsigned void volatile while - C99란? : 1999년도에정의된 C언어의표준을뜻함, 이는 C언어의가장최근표준을의미 하는것으로이전의표준과는조금차이가남, 그러나대부분이전의표준을변경하는 형태가아니라추가하는형태로변경된것이기때문에이로인한문제는걱정하지 않아도됨 Ⅳ. 변수사용방법 - 변수초기화 ( 변수에값을대입하는과정을뜻함 ) int val; // val 이라는이름을가진 int 형의변수선언 val = 10; // val 이라는메모리공간에 10 이라는값을대입 - 변수선언과동시에초기화 int val = 10; // val 이라는이름을가진 int 형의변수선언하고할당된 // 메모리영역에 10 이라는값을대입 - 같은형의변수여러개선언 int val1, val2; // val1, val2 라는이름을가진 int 형의변수선언 14

15 3. 상수 Ⅰ. 상수란? - 한번값을초기화하면변경할수없는공간으로선언하면서초기화해야함 Ⅱ. 리터럴 (Literal) 상수 - 이름이없는상수, 어떤값자체를의미함 - 위그림의 30 과 40 같이프로그램상에표현되는숫자도메모리에저장이되어야 함, 이처럼저장되는값은이름이존재하지않기때문에값을변경할수없음 - 1 단계 : 정수 30 과 40 이메모리공간에상수형태로저장됨 - 2 단계 : 두상수를기반으로 CPU 가덧셈을함 - 3 단계 : 덧셈의결과로얻어진정수 70 이변수 num 에저장됨 1 정수상수 - 소수점이하가없는데이터 - 0으로시작하면 8진수, 0x로시작하면 16진수를의미함 - 정수상수는메모리에 4Byte로저장 - 정수상수뒤에 L(l) 을붙이면 Long형으로표현됨 int val1 = 10; int val2 = 010; int val3 = 0x10; long val4 = 10L; // 10진수정수 // 8진수정수 // 16진수정수 // long형정수 2 실수상수 - 소수점이하가있는데이터, 지수형태도포함 - 실수상수는메모리에 8Byte로저장 - F(f) 을붙이면 4Byte로저장됨 15

16 double val1 = 1.2; double val2 = 1.234E+02; float val3 = 1.2f; 3 문자상수 - 문자한글자를의미함 - 작은따옴표 ( ) 안에표기함 - 특수문자 (Escape Sequence) 도문자상수에포함 char val1 = 'A'; char val2 = '\n'; 4 문자열상수 - 문자두글자이상을의미함 - 큰따옴표 ( ) 안에표기함 문자열상수는뒤에서다시배우도록함 Hello","World","Hi","010-xxxx-xxxx" Ⅲ. 심볼릭 (Symbolic) 상수 - 이름이있는상수 - 상수의이름은일반적으로대문자로선언하고함 - const 키워드를붙여선언한변수와매크로를이용한상수를의미함 매크로상수는뒤에서다시배우도록함 16

17 Chapter 3. 자료의입출력 1. 스트림과자료전송 Ⅰ. 스트림 (Stream) 이란? - 운영체제는키보드, 모니터, 프린트, 파일등을스트림이라는동등한장치로처리함즉, 입출력장치는다르지만스트림이라는논리적인동등한장치로표현되기때문에동일한방법으로입출력이가능함 - 표준스트림 이름 스트림의종류 입출력장치 stdin 표준입력스트림 키보드 stdout 표준출력스트림 모니터 stderr 표준에러스트림 모니터 Ⅱ. 버퍼 (Buffer) - 표준입출력함수 (printf, scanf...) 는스트림내에버퍼를사용함 - 버퍼란임시기억장소 ( 임시저장공간 ) 를말함 - 입출력데이터는한번에하나씩전송되는것이아니라버퍼에저장되었다가일정순간에입출력이됨 - 버퍼의데이터가입출력이되면버퍼의데이터는비워짐 Ⅲ. 버퍼비우기 - 데이터처리중버퍼에남아있는데이터를제거할필요성이있음 - 버퍼를비울때는 fflush라는함수를사용 - 입력버퍼를비우면버퍼안에데이터는삭제되며, 출력버퍼를비우면버퍼의내용이화면에즉시출력되고버퍼는비워짐 - 입력버퍼비우기 : fflush(stdin); - 출력버퍼비우기 : fflush(stdout); 17

18 2. 출력함수 Ⅰ. printf 함수란? - 문자열을화면에출력하는함수 - 출력하고자하는문자열을큰따옴표 ( ) 안에입력 - 특수문자출력이가능함 - 서식화된출력이가능함 Ⅱ. 특수문자출력 - 특수문자가필요한이유 ex) C언어정말재미있다. 정말! 대박! 재미있다. printf("c언어정말재미있다. " 정말! 대박!" 재미있다."); -> 위의문장을컴파일하면에러가발생 -> 이유는컴파일러는첫번째큰따옴표를만나는시점을문자열의시작으로인식하고두번째큰따옴표를만나는시점을문자열의끝으로인식함때문에위의코드에서 [ 정말! 대박!] 부분의문자열을인식하지못하여컴파일러는에러를발생시킴 printf("c 언어정말재미있다. \" 정말! 대박!\" 재미있다."); -> \" 같은특수문자를이용하면큰따옴표를출력할수있음 Ⅱ. 서식문자를이용한출력 - printf 의 f 는 formatted( 서식화된 ) 을의미함 - 서식문자의종류와의미 서식문자 출력형태 %c 단일문자 %d 부호있는 10진정수 %i 부호있는 10진정수, %d와같음 %f 부호있는 10진실수 %s 문자열 %o 부호없는 8진정수 %u 부호없는 10진정수 %x 부호없는 16진정수, 소문자사용 %X 부호없는 16진정수, 대문자사용 %e e 표기법에의한실수 %E E 표기법에의한실수 %g 값에따라서 %f, %e 둘중하나를선택 %G 값에따라서 %f, %E 둘중하나를선택 %p 포인터의번지출력 %% % 기호출력 Ⅲ. 옵션지정자를이용한출력 - 출력시필드의폭, 정렬, 정확도를나타내기위한옵션지정자 18

19 서식문자 출력형태 %7d 필드폭을 7칸확보하고우측정렬하여출력 %+7d 필드폭을 7칸확보하고우측정렬하여출력, 양수면 +, 음수는 -를붙여서출력 %-7d 필드폭을 7칸확보하고좌측정렬하여출력 %07d 필드폭을 7칸확보하고우측정렬하여출력, 빈공간발생시 0으로채움 %7.2f 필드폭을 7칸확보하고우측정렬하여출력, 소수점이하두자리만출력 Ⅳ. 실수의출력을위한서식문자 (%f, %e) - 컴퓨터는지수를표현할수없으므로 e 표기법으로지수를대신표현 Ⅴ. %g의실수출력과 %s의문자열출력 - %g는실수의형태에따라서 %f와 %e사이에서적절한형태의출력을진행 - %g와 %G의차이점은 e 표기법의 e를 %g는소문자 %G는대문자로출력 - %s는문자열을출력하기위한서식문자 문자열출력과관련해서는뒤에서다시배우도록함 19

20 3. 입력함수 Ⅰ. scanf 함수란? - 서식에맞게버퍼의내용을꺼내오는함수 - 버퍼에내용이없을시키보드로부터입력받아버퍼에저장 - 변수명앞에는주소를의미하는 & 연산자를붙여야함 & 연산자를붙이는이유는뒤에서다시배우도록함 - 두개이상의입력을받을시에는서식문자사이의문자가입력의구분기호가됨 Ⅱ. 정수기반의입력형태정의 - 데이터를입력받는 scanf 함수에게는두가지정보를전달 입력의형식 : 어떻게받아들일거니? 입력의장소 : 어디에저장할까? - 서식문자의의미는출력을입력으로만변경하면 printf 함수와유사함 20

21 %d : 10 진수정수의형태로데이터를입력받음 %o : 8 진수양의정수의형태로데이터를입력받음 %x : 16 진수양의정수의형태로데이터를입력받음 Ⅲ. 실수기반의입력형태정의 - printf함수에서는서식문자 %f,%e,%g의의미가다르지만 scanf함수에서는 'float형데이터를입력받겠다 ' 라는동일한의미를지님 - double형 long double형데이터의삽입을위한서식문자 %lf : double (%f에 l이추가된형태 ) %Lf : long double (%f에 L이추가된형태 ) 21

22 22

23 Chapter 4. 연산자 1. 산술연산자 - 정수연산의결과는정수이며, 정수와실수연산의결과는실수 - 정수나눗셈의결과가양수면소수점아래를버리고, 음수면소수점아래를올림 - 나머지를구하는 % 연산자는정수연산에만사용할수있음 연산자 연산자의의미 결합성 + 왼쪽과오른쪽에있는값을더함 - 왼쪽에있는값에서오른쪽에있는값을뺌 * 왼쪽과오른쪽에있는값을곱함 / 왼쪽에있는값을오른쪽에있는값으로나눔 % 왼쪽에있는값을오른쪽에있는값으로나눠서나머지를반환 2. 대입연산자 - 변수와연산후다시그변수에대입하는경우사용하는연산자를말함 연산자 연산자의의미 결합성 = 오른쪽값을왼쪽으로대입 += 왼쪽과오른쪽값을더한값왼쪽에대입 -= 왼쪽과오른쪽값을뺀값왼쪽에대입 *= 왼쪽과오른쪽값을곱한값왼쪽에대입 /= 왼쪽과오른쪽값을나눈값왼쪽에대입 %= 왼쪽과오른쪽값을나눈나머지값왼쪽에대입 23

24 3. 증가, 감소연산자 - 값을하나증가, 하나감소시키는경우에사용되는단항연산자 전치연산 ( 증감연산자가변수앞에나오는경우 ) : 변수에저장된값을증 / 감시킨후연산 후치연산 ( 증감연산자가변수뒤에나오는경우 ) : 연산수행후변수에저장된값을증 / 감 연산자 연산자의의미 결합성 ++a 값을 1증가후연산을진행 ( 선증가, 후연산 ) a++ 연산을진행한후값을 1 증가 ( 선연산, 후증가 ) --b 값을 1 감소후연산을진행 ( 선감소, 후연산 ) b-- 연산을진행한후값을 1 감소 ( 선연산, 후감소 ) 24

25 25

26 4. 관계연산자 - 두개의변수의관계를따지는연산자, 다른말로비교연산자라고도함 - 관계연산자는조건을만족하면 true(1), 만족하지못하면 false(0) 을반환 일반적으로참은 1, 거짓은 0 이지만사실 0 이외의값은모두참으로처리함 연산자 연산자의의미 결합성 < ex) a<b a가 b보다작은가? > ex) a>b a가 b보다큰가? == ex) a==b a와 b가같은가?!= ex) a!=b a와 b가같지않은가? <= ex) a<=b a가 b보다작거나같은가? >= ex) a>=b a가 b보다크거나작은가? 26

27 5. 논리연산자 - 여러조건을동시에검사할때주로사용되는연산자 - and( 그리고 ), or( 또는 ), not( 그러나 ) 를표현하는연산자 연산자 연산자의의미 결합성 && 피연산자가모두참이면 true를반환 (and의의미 ) 피연산자중하나라도참이면 true를반환 (or의의미 )! 피연산자가 true면 false를, false면 true를반환 (not의의미 ) 27

28 6. 비트연산자 - 2 진수로변환하여비트단위의연산을수행하는연산자 - int, short, long 형데이터에서만사용가능 - 주로하드웨어를직접제어하거나한글등을처리할때이용 연산자 연산자의의미 결합성 & 비트단위 AND ex) a & b 비트단위 OR ex) a b ^ 비트단위 XOR ex) a ^ b ~ 비트단위 NOT ex) ~a << 왼쪽으로이동 ( 쉬프트 ) ex) a << 2 >> 오른쪽으로이동 ( 쉬프트 ) ex) a >> 2 Ⅰ. & 연산자비트단위 AND 28

29 Ⅱ. 연산자비트단위 OR Ⅲ. ^ 연산자비트단위 XOR 29

30 Ⅳ. ~ 연산자비트단위 NOT Ⅴ. << 연산자비트의왼쪽이동 ( 쉬프트 ) 30

31 Ⅵ. >> 연산자비트의오른쪽이동 ( 쉬프트 ) 오른쪽이동으로인한왼쪽의빈자리를채울때시스템에따라 1 로채워지는경우와 0 으로채워지는경우가있음, 따라서호환성이요구되는경우에는사용을자제해야함 7. 기타연산자 Ⅰ. 콤마연산자 (,) - 둘이상의변수를동시에선언하거나둘이상의문장을한행에삽입하는경우에사용되는연산자 - 둘이상의인자를함수로전달할때인자의구분을목적으로도사용 - 콤마연산자는다른연산자들과달리연산의결과가아닌 ' 구분 ' 을목적으로함 Ⅱ. 조건연산자 - 조건을판별하여조건이참인경우참을실행하고거짓인경우거짓을수행 - [ 조건 ]? [ 참 ] : [ 거짓 ] Ⅲ. sizeof 연산자 - 데이터형, 상수, 변수, 수식에대한기억장소의크기 (byte) 를구하는연산자 - sizeof( 데이터 ); Ⅳ. 형변환연산자 - 이미지정된변수의데이터형을일시적으로다른데이터형으로변환하는연산자 - ( 데이터형 ) 변수 ; 31

32 8. 연산자우선순위 우선순위 연산자 결합성 우선순위 괄호, 구조체, 공용체 () []. -> 단항연산자! ~ * & sizeof cast 승제 * / % 가감 + - SHIFT << >> 이항연산자 비교 < > <= => 등가 ==!= bit AND & bit XOR ^ bit OR 높음 낮음 논리 AND && 논리 OR 조건연산자? : 대입연산자 = += -= *= /= %= >>= <<= &= ^= = 콤마연산자, 32

33 Chapter 5. 제어문 Ⅰ 1. 제어문의종류 조건문 반복문 기타제어문 if switch for while do~while break continue 2. 조건문 - 흐름의분기가필요한이유 33

34 Ⅰ. if문 1 단순 if문 - 조건식을판별하여조건이참이면중괄호 ({}) 안의명령문을수행하고, 거짓이면중괄호 ({}) 안의명령문을점프후다음명령을수행하는가장단순한형태의조건문 조건에따라수행해야할명령문이한개일경우중괄호는생략가능 1) 단순 if문사용예 if( 조건 ) { 명령문 1; 명령문 2;... 명령문 n; } 다음명령 ; 2) 단순 if 문사용예 ( 중괄호생략 ) if( 조건 ) 명령문 ; 다음명령 ; 34

35 2 if ~ else 문 - 둘중한개를선택하는조건문으로조건이참인경우와거짓인경우에수행하는명령이다름 - if문의조건이만족하지못하면 else문이수행 else 다음에는절대로조건을쓸수없음 - 조건에따라수행해야할명령문이한개일경우에는중괄호는생략가능 35

36 3 다중 if문 (if, else if, else) - 여러개중한개를선택하는경우사용하는조건문으로조건에따라수행되는명령문이다름 - 다중 if문은위에있는조건부터차례대로비교하면서내려오게되는데조건이참이되어명령을수행하게되면아래있는나머지조건은비교하지않고다중 if문전체를빠져나옴 - 조건에따라수행해야할명령문이한개일경우에는중괄호는생략가능 36

37 Ⅱ. switch문 - 변수의값을 case에서찾아명령을수행하는조건문 - 해당하는값이없을경우에는 default의명령문을수행 case 와명령문사이에는콜론 (:) 을써야함 switch( 변수 ) { case 상수 : 명령문 ; break; case 상수 : 명령문 ;... case 상수 : 명령문 ; default: 명령문 ; } 37

38 38

39 39

40 - switch 문과 if~else 문의비교 switch 문을사용하면 if~else 문보다간결하게작성할수있음 조건에연산을필요로하는경우는 switch 문으로사용할수없음 40

41 Chapter 6. 제어문 Ⅱ 1. 반복문 - 하나이상의문장을두번이상반복실행하기위해구성하는문장 Ⅰ. for문 - 조건이참인경우중괄호 ({}) 안의명령문을반복적으로수행하는제어문 - for문의괄호안에는 3개의명령을쓸수있는데이명령은세미콜론 (;) 으로분리 - 3개의명령중필요없는명령은생략가능하며, 모든명령을생략하면무한루프임 - 조건에따라수행해야할명령문이한개일경우에는중괄호 ({}) 생략가능 for문내에서초기값과증 / 감값이여러개인경우콤마 (,) 로나열할수있다. 그러나조건이여러개인경우는콤마 (,) 로나열하는것이아니라 &&(AND) 또는 (OR) 연산자로조건을연결해야한다. 만약, 조건을콤마로나열시가장우측에있는조건만수행된다. 단, for문내에서너무많은연산식을사용할시프로그램분석에어려움이따를수있기때문에적절하게사용하는것이좋다. for( 초기값 ; 조건 ; 증감값 ) { 명령문1; 명령문2;... 명령문n; } 초기값 : 본격적으로반복을시작하기에앞서딱한번실행 조건 : 매반복의시작에앞서실행되며, 그결과를기반으로반복유무를결정 증감식 : 매반복실행후마지막에연산이이루어짐 41

42 42

43 Ⅱ. 다중 for문 - for문안에 for문이들어간형태로내부의명령을외부의횟수만큼반복하게됨 for( 초기값 ; 조건 ; 증감값 ) { for( 초기값 ; 조건 ; 증감값 ) { 명령문1; 명령문2;... 명령문n; } } 43

44 Chapter 7. 제어문 Ⅲ 1. 반복문 Ⅰ. while 문 - 조건이참인경우중괄호 ({}) 안의명령문을반복적으로수행하는제어문 - 조건에따라수행해야할명령문이한개일경우에는중괄호는생략가능 while( 조건 ) { 명령문1; 명령문2;... 명령문n; } Ⅱ. do ~ while문 - 명령문을먼저실행하고조건을비교하는반복문 - 반드시한번은명령문이수행됨 - while문뒤에세미콜론 (;) 을써야함 - 조건에따라수행해야할명령문이한개일경우에는중괄호생략가능 44

45 do { 명령문1; 명령문2;... 명령문n; }while( 조건 ); 45

46 2. 기타제어문 Ⅰ. break 문 - 반복명령의실행도중강제적으로빠져나올때사용되는명령 - 여러개의반복문이중첩되어있는경우가장안쪽반복문한개만빠져나옴 Ⅱ. continue 문 - 반복문의나머지부분을무시하고그반복문의선두로이동할때사용되는명령 Ⅲ. goto문 - 조건없이지정한곳으로무조건점프하는제어문 - 쉽게사용할수있다는장점이있지만프로그램의구조를복잡하게만들기때문에자주쓰이지않음 - goto로옮길지점을레이블로표시하며, 레이블다음에는콜론 (:) 을붙여사용 #include <stdio.h> int main(void) { int i=0; } label: // 레이블표시 i++; if(i<=100) { if(i%2==0) { printf("%2d ", i); if(i==50) printf("\n"); } goto label; // goto 사용 } printf("\n"); return 0; 46

47 Chapter 8. 1 차원배열 1. 배열 (array) - 배열은같은타입의변수가여러개필요한경우이용 - 배열은같은타입의변수가하나의배열이름에연속적인메모리에할당 2. 1 차원배열의선언 - 배열선언시 3 가지정보가필요함 ( 배열의자료형, 배열의이름, 배열의길이 ) - 배열선언시배열의길이는반드시정수상수로선언 47

48 3. 1 차원배열의접근 - 배열은같은이름의변수가연속적인메모리에할당되어있기때문에배열이름에 인덱스 ( 요소의위치 ) 를이용하여각각의변수를구별함 - 인덱스는항상 0 부터시작하기때문에마지막인덱스는배열의크기보다항상 1 이작음 48

49 4. 1 차원배열의초기화 - 배열의초기값은여러개존재하기때문에중괄호 ({}) 안에차례로씀 - 배열의크기보다적은개수의초기값을할당하게되면나머지배열의값은무조건 0 으로초기화됨 - 초기값을입력하고배열의크기를생략하면초기값의개수가묵시적으로배열의크기가됨 49

50 50

51 5. char 형배열의문자열저장과널문자 - 문자열의끝에는문자열의끝을의미하는널문자 (\0) 이삽입이됨 6. 널문자와공백문자의비교 - 널문자를 %c 를이용해서출력시아무것도출력되지않음 - 널문자의 ASCII 코드값은 0 이고, 공백문자의 ASCII 코드값은 32 - 널문자는모니터출력에서의미를갖지않기때문에아무것도출력이안됨 51

52 7. 문자열끝에널문자가필요한이유 - 문자열의시작은판단할수있어도문자열의끝은판단이불가능함, 때문에 문자열의끝을판단할수있도록널문자가삽입됨 52

53 Chapter 9. 다차원배열 1. 다차원배열 - 2 차원, 3 차원등의배열을다차원배열이라함 2. 2 차원배열의선언 - 2 차원배열은행과열로구성된형태로, 첫번째크기는행을의미하며두번째크기는 열을의미 - 행과열은논리적인표현일뿐, 실제메모리는 1 차원배열과같은방식으로할당됨 int arr1[3][4]; int arr1[3][4]; 53

54 3. 2 차원배열의접근 - 1 차원과마찬가지로다차원배열도인덱스를사용 - 1 차원에서는인덱스를한개를사용, 2 차원배열은두개의인덱스를사용한다 즉, n 차원배열은 n 개의인덱스를사용함 54

55 55

56 4. 2 차원배열초기화 - 초기화리스트안에행단위로초기화할값들을별도의중괄호로명시 - 채워지지않은공간은 0 으로채워짐 - 별도의중괄호를사용하지않으면좌상단부터우하단순으로초기화 - 별도의중괄호없이한줄에표현도가능 56

57 57

58 5. 배열의크기지정없이초기화 - 두개가모두비면컴파일러가채워넣을숫자를결정하지못함 - 세로길이만생략할수있도록약속되어있음 58

59 Chapter 10. 함수와기억클래스 1. 함수란? - main함수안에모든프로그램을작성하면전체프로그램이복잡해지고이해하기어려움 - 프로그램을기능별로분리된단위프로그램으로나누어정의함으로써코드의재사용이나유지보수가용이함 - 중복되는작업의중복을피할수있음 2. 함수의정의 리턴타입함수명 ( 데이터형변수1, 데이터형변수2,..., 데이터형변수n) {... return 값 ; } 리턴타입 - int, char, void,... 등을쓸수있으며리턴시돌려주는값의데이터형사용 - 리턴시돌려주는값이없을경우 void를사용 리턴타입이 void인경우 return은생략가능 함수명 - 함수명은가급적이면의미있는이름으로정하며, 변수명을정하는규칙과같음 함수의괄호 - 호출부에서전달한값을받을변수선언 - 전달하는개수와데이터형은일치해야함 - 전달인수가여러개일경우콤마 (,) 로구분, 없을경우생략가능 return - 함수를호출한곳으로결과값을돌려주며, 함수를탈출 3. 함수의선언 - 함수의선언은컴파일러에게함수의정보를알려주는역할을하며, 이정보를이용하여컴파일러는함수사용에관련된오류를검사함 - 함수선언은메인함수전에함 - 함수선언은함수호출이전에하며, 함수정의부분끝에세미콜론 (;) 을추가함 - 함수선언시전달인자 ( 매개변수 ) 의이름은생략가능 - 함수정의부를함수호출이전에두면, 함수선언은생략가능리턴타입함수명 ( 데이터형변수1, 데이터형변수2,..., 데이터형변수n); 59

60 60

61 4. 함수의구분 - 함수는전달인자와반환값의유무에따라 4가지유형이있음 1 전달인자 (O), 반환값 (O) 2 전달인자 (O), 반환값 (X) 3 전달인자 (X), 반환값 (O) 4 전달인자 (O), 반환값 (X) 61

62 - 유형 1 인경우 - 유형 2,3,4 인경우 62

63 5. 기억클래스 - 변수는데이터형 (Data Type) 과기억클래스 (Storage Class) 를가지고있음 - 데이터형은변수의크기와어떤타입의데이터를처리할것인가를결정 - 기억클래스는변수가사용되는유효범위와초기화방법을결정 Ⅰ. 지역변수 - 함수내에선언되는변수로선언된함수내에서만접근이가능 - 함수가종료되면메모리에서소멸 - 매개변수 ( 전달인자 ) 도지역변수에포함 - 초기화하지않으면쓰레기값을갖음 63

64 Ⅱ. 전역변수 - 함수외부에서선언된변수 - 프로그램의시작과동시에메모리공간에할당되어종료시까지존재함 - 별도의값으로초기화하지않으면 0 으로초기화 - 프로그램전체영역어디서든접근이가능 64

65 Ⅲ. 정적변수 - static 을붙여선언된변수를말함 - 선언된함수내에서만접근이가능 ( 지역변수특징 ) - 프로그램실행시메모리가단한번할당되며프로그램이종료되면메모리에서소멸 ( 전역변수특징 ) 65

66 66

67 Chapter 11. 포인터의이해 1. 포인터 - 포인터란메모리의주소를저장하기위한변수 - 포인터또한변수이기때문에포인터변수라고함 2. & 연산자 - & 연산자를이용하면변수의주소를구할수있음 포인터변수의크기는시스템의주소값크기에따라다름 16비트시스템 -> 주소값크기 16비트 -> 포인터변수의크기 16비트 32비트시스템 -> 주소값크기 32비트 -> 포인터변수의크기 32비트 67

68 3. 포인터선언 - 포인터를선언할때에는 * 연산자를사용 - 포인터의데이터형은주소를저장하는변수의데이터형과일치해야함 포인터는데이터형에상관없이모두 4byte(32 비트기준 ) - 포인터변수선언에서 * 의위치에따른차이는없음 4. * 연산자 - 포인터변수앞에 * 연산자를쓰면포인터가참조하는메모리에접근할수있음 - 포인터를이용한메모리접근방식을간접접근 (Indirect Access) 라고함 - 포인터는간접접근을위해서데이터형이존재해야함 68

69 5. * 연산자용도 연산자 용도 형식 사용예 a*b; 곱하기 * 포인터 ( 주소를저장하는변수 ) 간접접근 ( 포인터가가리키는값 ) 변수또는상수 x*3; 5*5; 데이터형 * 변수명 int *p; double *dp; * 포인터명 *p; *dp; 6. 잘못된포인터사용과널포인터 - 잘못된포인터 ptr이쓰레기값으로초기화됨, 따라서 200이저장되는위치를알수없음 - 널포인터잘못된포인터연산을막기위해서특정한값으로초기화하지않는경우에는널포인터로초기화하는것이안전함 널포인터 NULL은숫자 0을의미, 0은 0번지를뜻하는것이아니라아무것도가리키지않는다는의미로해석됨 69

70 7. 배열과포인터 Ⅰ. 배열이름의의미 - 배열의이름은배열의시작주소값을의미하는 ( 배열의첫번째요소를가리키는 ) 포인터 - 단순히주소값이아닌포인터인이유는메모리접근에사용되는 * 연산이가능하기때문 Ⅱ. 배열이름과포인터변수의비교 70

71 Ⅲ. 포인터연산 - 포인터는연산시가리키는데이터형의크기만큼증가및감소함 71

72 - arr[i] == *(arr+i) - 배열이름을포인터처럼사용할수있음 - 포인터를배열처럼사용할수있음 72

73 Chapter 12. 포인터와함수 1. 함수의데이터전달방법 Ⅰ. 값에의한전달 (Call-by-Value) - 함수를호출할때단순히값을전달하는형태의함수호출 - 함수외부의선언된변수에접근이불가능 Ⅱ. 주소에의한전달 (Call-by-Reference) - 함수를호출할때메모리접근에사용되는주소값을전달하는형태의함수호출 - 함수외부의선언된변수에접근이가능 Ⅲ. 값에의한전달과주소에의한전달비교 - Call-by-Value 형식의코드 - 결과가제대로나오지않음 73

74 - Call-by-Reference 형식의코드 - 결과가제대로나옴 74

75 2. scanf 함수호출시 & 붙이는이유 - 변수 num 앞에 & 연산자를붙이는이유 scanf 함수내에서외부에선언된변수 num 에접근하기위해서는 num 의주소값을 알아야함, 때문에 scanf 함수는변수의주소값을요구 - 배열이름 str 앞에 & 연산자를붙이지않는이유 str 은배열이름이고그자체가주소값이기때문에 & 연산자를붙이지않음 str 을전달함은 scanf 함수내부로배열 str 의주소값을전달하는것 75

76 Chapter 13. 문자열 1. 문자열 Ⅰ. 문자상수 vs 문자열상수 - C 언어에서문자상수와문자열상수는완전히다르게처리됨 문자 문자열 형태 한글자 두글자이상 표기방법 작은따옴표 ( ) 큰따옴표 ( ) 사용예 A', 'b', '\n' "apple", "banana", "Korea" 처리방법 정수로처리 주소로처리 특징 아스키코드와대응 문자열끝에널문자 (\0) 가추가됨 2. 문자열처리방법 Ⅰ. 배열을이용한문자열처리 - C언어는문자열을저장하는기본데이터형이없음 - 문자열이란문자들이모여이루어지는것이므로배열을이용하면저장할수있기때문 - 문자열은문자열의끝을의미하는널문자 (\0) 가있기때문에항상문자열의길이보다 1byte 크게배열의크기를설정해야함 ( 한글은 1음절이 2byte기때문에, 음절의두배 + 1에해당하는크기로설정해야함 ) Ⅱ. 포인터를이용한문자열처리 - 문자열은문자열이저장곳의시작주소로처리되기때문에 char형포인터는문자열을저장할수있음, 이경우포인터는문자열의주소를저장하고있는것 - 배열은문자열을또다른메모리공간에저장하지만문자열의주소만저장하고있을뿐, 때문에포인터로문자열을처리하면문자열에접근만할수있을뿐문자열의수정은불가능함 - 포인터에문자열을저장하면문자열의길이에상관없이문자열의주소를저장하는 4byte 포인터만있으면되기때문에메모리를효율적으로사용할수있지만문자열의수정은불가능한읽기전용이됨 3. 문자열입출력함수 Ⅰ. 문자열출력함수 : puts, fputs - 인자로전달되는문자열을화면에출력 - fputs는두번째인자를통해서출력의대상을지정할수있음 puts함수가호출되면문자열출력후자동으로개행이이루어지지만, fputs함수가호출되면문자열출력후자동으로개행이이뤄지지않음 76

77 Ⅱ. 문자열입력함수 : gets, fgets - 키보드로입력되는문자열을변수에저장하는함수 - fgets 는세번째인자를통해서입력의대상을지정할수있음 77

78 - gets 함수의경우입력되는문자열의길이가배열을넘어설경우할당받지 않은메모리를참조하는오류가발생 78

79 Chapter 14. 문자열함수 1. 문자열함수 - 문자열함수는 string.h 헤더파일에선언되어있으므로문자열함수를사용하려면 이헤더파일을추가해야함 Ⅰ. strlen 함수 - 문자열의길이를반환하는함수 79

80 Ⅱ. strcpy, strncpy 함수 - 문자열을복사하는함수 - strcpy : str1 에저장된문자열을 str2 에복사 - strncpy : str1 에저장된문자열을 str2 에복사하되 sizeof(str2) 의반환값만큼복사 80

81 Ⅲ. strcat, strncat 함수 - 문자열을덧붙이는함수들 81

82 Ⅳ. strcmp, strncmp 함수 - 문자열을비교하는함수들 - 크고작음은 ASCII코드값을근거로함 - A보다 B가, B보다 C가 ASCII코드값이더크고 A보다 a가, B보다 b가 ASCII코드값이더크니, 알파벳순서를기준으로뒤에위치할수록더큰값임 82

83 Ⅴ. atoi, atol, atof 함수 - stdlib.h 에선언되어있음 - 문자열의내용을숫자형태로변환해주는함수 83

84 84

85 Chapter 15. 전처리기 1. 전처리기 - 전처리기 (Preprocessor) 란컴파일에앞서미리처리되는처리기를뜻함 - C 언어로작성된원시프로그램은컴파일과링크의단계를거쳐실행파일을생성하게 되는데컴파일단계를좀더세분화한다면전처리단계와컴파일단계로나눌수있음 반드시해시표시 (#) 로시작해야함 명령문의끝은세미콜론 (;) 을붙이지않음 한줄에하나의명령만씀 일반적으로대문자를기초로작성 2. 매크로 - 매크로 (macro) 는매크로명을명령이나수식또는상수로치환 - #define 은매크로를정의 3. 매크로상수 - 매크로명을상수로치환 85

86 4. 매크로함수 - 매크로함수는데이터형에독립적 ( 어떤데이터형이전달되어도상관없음 ) - 함수호출시발생하는오버헤드가발생하지않아실행속도가향상 - 함수호출부가매크로함수몸체부분으로완전히치환되기때문에코드의크기는커짐 - 매크로함수는함수의크기가작은경우에만사용 Ⅰ. 매크로함수사용 86

87 Ⅱ. 잘못된매크로의정의와소괄호의해결책 87

88 Ⅲ. 여러줄에걸쳐매크로정의 - 여러줄에걸쳐매크로를정의할때는백슬러시 (\) 를사용 에러발생 정상사용 Ⅳ. 문자열내에서의매크로매개변수치환 - 매크로치환시문자열안에서는치환이일어나지않음 - # 연산자를이용하면치환값이상수가아니라문자열로치환 - 둘이상의문자열선언을나란히하면, 이는하나의문자열선언으로인식이됨 88

89 Chapter 16. 구조체 Ⅰ 1. 구조체 - 구조체란두개이상의데이터형을묶어서새로운데이터형을정의하는것을말함 < 구조체정의 > struct 구조체명 { 멤버 1; 멤버 2;... 멤버 n; }; < 구조체선언 > struct 구조체명변수명 ; < 구조체멤버접근 > 변수명. 멤버 ; < 구조체초기화 > struct 구조체명구조체변수명 = { 값1, 값2, 값3}; 구조체로정의한데이터형은 struct키워드를사용 구조체정의끝은항상세미콜론 (;) 으로끝냄 구조체정의시멤버변수초기값의할당은불가능 구조체멤버초기화방법은배열과같음 Ⅰ. 구조체의정의 89

90 Ⅱ. 구조체변수의선언과접근 - 구조체변수선언의기본형태 - 멤버의접근방식 90

91 91

92 Ⅲ. 구조체정의와동시에변수선언하기 - 구조체를정의함과동시에변수를선언하는문장은잘사용되지않음 Ⅳ. 구조체변수의초기화 92

93 2. typedef - 데이터형을새롭게정의하는명령 - typedef를하면원래데이터형과새롭게정의한데이터형을모두사용할수있음 - 데이터형의이름을명시적으로쓰고싶은경우나구조체와같이데이터형의이름이긴경우사용 typedef 데이터형재정의데이터형 ex) typedef int size_t; typedef unsigned int UINT; typedef struct student student; 3. 구조체배열 - 구조체또한데이터형이기때문에배열선언가능 93

94 - 구조체배열의초기화시다차원배열처럼각각의초기화값을중괄호로묶어서표현 구조체변수의초기화 구조체배열의초기화 94

95 4. 구조체포인터 - 구조체포인터란구조체의주소를저장하는포인터 - 구조체포인터로구조체멤버를접근할때는간접멤버접근연산자 (->) 를사용 구조체변수멤버접근시는멤버접근연산자 (.), 구조체포인터변수멤버접근시는간접멤버접근연산자 (->) 사용을꼭기억 95

96 Chapter 17. 구조체 Ⅱ 1. 구조체연산 - 구조체변수도대입연산가능 ( 멤버대멤버의복사 ) - 덧셈및뺄셈같은사칙연산은허용되지않음, 필요시함수를정의해서사용 대입연산의예 96

97 덧셈및뺄셈연산의예 2. 구조체와함수 - 구조체변수도 Call-by-Value 방식과 Call-by-Reference 방식으로전달 - Call-by-Value 방식으로전달하는경우는멤버대멤버복사가수행 - Call-by-Reference 방식으로전달하는경우는구조체변수의주소를포인터에저장 97

98 함수의인자로구조체변수전달 (Call-by-Value) 함수의인자로구조체배열변수전달 (Call-by-Value) 98

99 함수의인자로구조체변수주소값전달 (Call-by-Reference) 99

100 3. 중첩된구조체의정의와변수의선언 - 앞서정의한구조체는이후에새로운구조체를선언하는데있어서 기본자료형의이름과마찬가지로사용이될수있음 4. 공용체 - 구조체와같은사용자정의자료형 - 구조체와매우비슷한특징을가지고있고 union키워드사용 - 공용체는서로다른자료형의변수를하나의메모리공간에서공유하는경우에사용 현시점에서많이사용되지는않으므로구조체와구분되는특징을위주로이해하고넘어가기로함 100

101 Ⅰ. 구조체와공용체의선언방식의차이 - struct 대신 union 이라는키워드를사용한다는차이점만있고 나머지는구조체와동일함 Ⅱ. 구조체와공용체의메모리적차이 - 구조체는멤버변수각각메모리공간을독립적으로할당받지만공용체는 멤버변수중가장큰데이터형의메모리공간하나만을할당받아공유함 101

102 102

103 Ⅲ. 공용체의예 103

104 104

105 Chapter 18. 포인터고급 1. 포인터배열 - 포인터배열이란이름그대로포인터들의배열을말하는것으로같은타입의포인터가 여러개필요한경우포인터를배열로선언 105

106 2. 2 차원포인터 - 싱글포인터 ( 포인터 ) 는변수의주소를저장하기위한포인터라면 2 차원포인터 ( 더블포인터 ) 는싱글포인터의주소를저장하는포인터 3. 2 차원배열과포인터 Ⅰ. 2 차원배열이름과포인터 - 배열이름은배열의시작주소를가리키는포인터 - 배열이름 [ 행 ] 은행의시작주소 - 배열이름증 / 감연산시행단위로이동 106

107 107

108 Ⅱ. 2 차원배열이름의포인터타입 - 1차원배열이름은배열이름연산시증 / 감되는바이트가항상같기때문에데이터형이같은경우포인터타입도일치 - 2차원배열의이름은포인터연산시증 / 감되는바이트가일치하지않기때문에포인터타입이다름 108

109 109

110 Chapter 19. 파일입 출력 1. 파일입 출력의개념 - 표준입 출력함수는모니터와키보드로입 출력을수행하지만파일처리함수는보조기억장치파일 (file) 에데이터를입 출력함 - 파일입 출력은텍스트모드와 2진모드로구분됨 텍스트모드 : 프로그램에서파일로읽어들이거나쓰는경우에데이터변환이일어나는입 출력모드를의미, 일반적인문자열과같은텍스트기반의데이터에사용 2진모드 : 아무변환없이데이터를입 출력하는모드를의미, 영상데이터와같이데이터의변환이발생하면안되는경우에사용 2. FILE 포인터를이용한파일입 출력 Ⅰ. 파일입 출력의수행과정 1 파일을개방 2 입 출력을수행 3 파일을닫음 Ⅱ. fopen 함수 - fopen 함수가호출되면 FILE 구조체변수가생성 - 생성된 FILE 구조체변수에는파일에대한정보가담김 - FILE 구조체의포인터는사실상파일을가리키는 지시자 역할 110

111 - 출력스트림의생성 - 입력스트림의생성 111

112 Ⅲ. fclose 함수 - 운영체제가할당한자원의반환 - 버퍼링되었던데이터의출력 3. 파일모드 - 텍스트모드는파일모드뒤에 't' 를, 2 진모드는 'b' 를사용 't', 'b' 아무것도붙이지않으면텍스트모드 't' 로파일개방 - 모드의 '+' 는읽기, 쓰기가모두가능한스트림의형성을의미 - 모드의 'a' 는쓰기가가능한스트림을말하며기존데이터의끝부터쓰는것을의미 4. 파일입 출력함수 fputc int fputc(int c, FILE *stream); - 스트림에한문자를출력하는함수 - 출력한문자를리턴하며에러가발생할경우 EOF(-1) 를리턴 112

113 fgetc int fgetc(file *stream); - 스트림에서한문자를읽어오는함수 - 입력된문자를리턴하지만파일의끝을만났을경우 EOF(-1) 을가질수도있기때문에정수형변수에대입해야함 fputs int fputs(const char *string, FILE *stream); - 스트림에문자열을출력하는함수로개행문자 ('\n') 가있더라도한꺼번에출력됨 - 널문자 ('\0') 이전까지출력되므로문자열은반드시널문자로끝나야함 - 출력된마지막문자를리턴하며에러가발생하면 EOF(-1) 를리턴 fgets char *fgets(char *s, int n, FILE *stream); - 스트림에서문자열을읽어와 char형배열에저장하는함수 - 개행문자를 ('\n') 를만날때까지문자열을읽어들이거나두번째인수의길이만큼읽어들임 - 개행문자를만나면읽기를중단하기때문에행단위로읽어들일경우많이사용 - 리턴타입은문자열이저장된배열의주소이기때문에파일의끝을만나저장된문자열이없는경우는 NULl을리턴 fprintf int fprintf(file *stream, const char *format [,argument ]...); - 스트림에서식화된출력하기위해사용되는함수 - 첫번째인수로 FILE의포인터를넘긴다는것을제외하고 printf와동일함 fscanf int fscanf(file *stream, const char *format [,argument ]...); - 스트림에서서식화된데이터를읽어오기위해사용되는함수 - 첫번째인수로 FILE의포인터를넘긴다는것을제외하고 scanf와동일함 fcloseall int fcloseall(); - 열려있는모든스트림을닫음 113

114 114

115 Chapter 20. 메모리관리와동적할당 1. 메모리관리 Ⅰ. 메모리 (Memory) - 프로그램이실행되는동안저장되는데이터는 RAM 이라는메모리공간에저장 - RAM 은크게코드, 데이터, 스택, 힙영역으로나뉨 코드영역 : 실행할프로그램의코드가저장되는공간, CPU는코드영역에저장된명령문을하나씩가져다가실행 데이터영역 : 전역변수와 static변수가할당되는영역, 프로그램시작과동시에할당되어종료시까지남아있는특징의변수가저장되는공간 힙영역 : 프로그래머가원하는시점에메모리공간에할당및소멸을하기위한공간 스택영역 : 지역변수와매개변수가할당되는공간, 함수를빠져나가면소멸되는변수를저장하는공간 2. 정적할당과동적할당 정적할당 - Compile( 컴파일 ) 시할당될메모리크기가결정 - Stack영역과 Data영역에할당되는메모리 동적할당 - 실행중에메모리가할당 - 동적할당된메모리는 Heap영역에할당 115

116 3. malloc/free 함수 Ⅰ. malloc/free 함수 - malloc함수 : 전달인자의크기만큼메모리를할당하고할당된메모리의시작주소리턴리턴되는주소는 void포인터타입이기때문에반드시형변환해서사용 malloc함수의리턴형이 void인이유 : malloc함수는인자로숫자만하나전달받을뿐이기때문에할당하는메모리의용도를알지못함, 따라서메모리의포인터형을결정짓지못함, 때문에형변환의과정을거쳐서할당된메모리의주소값을저장 - free함수 : 주소가가리키는메모리를해제 - stdlib.h 헤더파일안에선언되어있으므로사용시 stdlib.h를포함 116

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

OCW_C언어 기초

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

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

슬라이드 1

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

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

[ 마이크로프로세서 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 - 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 - 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

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

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

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

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

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

<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

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

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

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 13. 포인터와배열! 함께이해하기 2013.10.02. 오병우 컴퓨터공학과 13-1 포인터와배열의관계 Programming in C, 정재은저, 사이텍미디어. 9 장참조 ( 교재의 13-1 은읽지말것 ) 배열이름의정체 배열이름은 Compile 시의 Symbol 로서첫번째요소의주소값을나타낸다. Symbol 로서컴파일시에만유효함 실행시에는메모리에잡히지않음

More information

윤성우의 열혈 TCP/IP 소켓 프로그래밊

윤성우의 열혈 TCP/IP 소켓 프로그래밊 윤성우저열혈강의 C 프로그래밍개정판 Chapter 21. 문자와문자열관련함수 Chapter 21-1. 스트림과데이터의이동 윤성우저열혈강의 C 프로그래밍개정판 무엇이입력이고무엇이출력인가 입력장치 출력장치 키보드 마우스 화상카메라 파일 모니터 프린터 입출력장치는매우포괄적이다. 데이터를컴퓨터내부로받아들이는것이입력이고외부로젂송하는것이출력이다. 데이터의이동수단이되는스트림

More information

OCW_C언어 기초

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

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 5 강. 배열, 포인터, 참조목차 배열 포인터 C++ 메모리구조 주소연산자 포인터 포인터연산 배열과포인터 메모리동적할당 문자열 참조 1 /20 5 강. 배열, 포인터, 참조배열 배열 같은타입의변수여러개를하나의변수명으로처리 int Ary[10]; 총 10 개의변수 : Ary[0]~Ary[9]

More information

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

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

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

< 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

윤성우의 열혈 TCP/IP 소켓 프로그래밍

윤성우의 열혈 TCP/IP 소켓 프로그래밍 C 프로그래밍프로젝트 Chap 22. 구조체와사용자정의자료형 1 2013.10.10. 오병우 컴퓨터공학과 구조체의정의 (Structure) 구조체 하나이상의기본자료형을기반으로사용자정의자료형 (User Defined Data Type) 을만들수있는문법요소 배열 vs. 구조체 배열 : 한가지자료형의집합 구조체 : 여러가지자료형의집합 사용자정의자료형 struct

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

02장.배열과 클래스

02장.배열과 클래스 ---------------- DATA STRUCTURES USING C ---------------- CHAPTER 배열과구조체 1/20 많은자료의처리? 배열 (array), 구조체 (struct) 성적처리프로그램에서 45 명의성적을저장하는방법 주소록프로그램에서친구들의다양한정보 ( 이름, 전화번호, 주소, 이메일등 ) 를통합하여저장하는방법 홍길동 이름 :

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 10 포인터 01 포인터의기본 02 인자전달방법 03 포인터와배열 04 포인터와문자열 변수의주소를저장하는포인터에대해알아본다. 함수의인자를값과주소로전달하는방법을알아본다. 포인터와배열의관계를알아본다. 포인터와문자열의관계를알아본다. 1.1 포인터선언 포인터선언방법 자료형 * 변수명 ; int * ptr; * 연산자가하나이면 1 차원포인터 1 차원포인터는일반변수의주소를값으로가짐

More information

OCW_C언어 기초

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

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

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 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 - 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

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

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

구조체정의 자료형 (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

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D> 리눅스 오류처리하기 2007. 11. 28 안효창 라이브러리함수의오류번호얻기 errno 변수기능오류번호를저장한다. 기본형 extern int errno; 헤더파일 라이브러리함수호출에실패했을때함수예 정수값을반환하는함수 -1 반환 open 함수 포인터를반환하는함수 NULL 반환 fopen 함수 2 유닉스 / 리눅스 라이브러리함수의오류번호얻기 19-1

More information

Microsoft PowerPoint - chap-03.pptx

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

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

프로그래밍개론및실습 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

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

Microsoft PowerPoint - C_Programming_Basics.ppt [호환 모드] C 언어 기본사항 프로그램의 기본 틀 main 함수 프로그램의 시작점이자 종료지점 printf 함수를이용한문자열출력 문자열 프로그램상에서는큰따옴표로묶어서표현한다. printf 함수의기능 큰따옴표로묶여서표현되는문자열의출력 printf 함수의호출을위해필요한것 #include 의삽입 '\n' 은개행의의미를 #include 지니는

More information

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

Microsoft PowerPoint - C프로그래밍-chap15.ppt [호환 모드] Chapter 15 문자열 2009 한국항공대학교항공우주기계공학부 (http://mercury.kau.ac.kr/sjkwon) 1 문자의집합체 문자열의정의 일련의문자 C 언어에서문자열앞뒤에인용부호 를이용 문자와문자열과의차이 문자열의저장 (1) 배열을이용하는방법 문자열상수 c c language 를저장하는문자열배열 항상문자열마지막에는 NULL문자를넣어야함 (2)

More information

11장 포인터

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

More information

Microsoft PowerPoint - chap06-5 [호환 모드]

Microsoft PowerPoint - chap06-5 [호환 모드] 2011-1 학기프로그래밍입문 (1) chapter 06-5 참고자료 변수의영역과데이터의전달 박종혁 Tel: 970-6702 Email: jhpark1@seoultech.ac.kr h k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 자동변수 지금까지하나의함수안에서선언한변수는자동변수이다. 사용범위는하나의함수내부이다. 생존기간은함수가호출되어실행되는동안이다.

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

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

<4D F736F F F696E74202D20C1A633C0E52043C7C1B7CEB1D7B7A5B1B8BCBABFE4BCD2>

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

More information

Data Structure

Data Structure Function & Pointer C- 언어의활용을위한주요기법 (3) Dong Kyue Kim Hanyang University dqkim@hanyang.ac.kr 함수의인자전달 함수의인자전달 함수의인자전달방식 인자전달의기본방식은복사다. 함수호출시전달되는값을매개변수를통해서전달받는데, 이때에값의복사가일어난다. int main(void) int val = 10;

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

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 (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

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 - 제11장 포인터(강의)

Microsoft PowerPoint - 제11장 포인터(강의) 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

Microsoft PowerPoint - 10장 문자열 pptx

Microsoft PowerPoint - 10장 문자열 pptx C 프로그래밍및실습 10. 문자열 세종대학교 목차 1) 문자열이란? 2) 문자열과포인터 3) 문자열의배열 4) 문자열처리함수 5) 문자열및문자입출력 2 1) 문자열이란 문자배열 ( 복습 ) 원소가문자인배열 각배열원소를하나의단위로처리 : 초기화, 입출력 char str[8] = {'H','e','l','l','o'}; // 문자로초기화 int i; for (i=0

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

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

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint - 제11장 포인터 쉽게풀어쓴 C 언어 Express 제 11 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 1003 1004 1005 영화관 1002 1006 1001 포인터 (pointer) 1007 메모리의구조

More information

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

Microsoft PowerPoint - chap01-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 학습목표 프로그래밍의 기본 개념을

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

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

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 - C++ 5 .pptx

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

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 - c2.ppt

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

More information

쉽게 풀어쓴 C 프로그래밍

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

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

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

Microsoft PowerPoint - chap12-고급기능.pptx

Microsoft 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 information

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다

10 강. 쉘스크립트 l 쉘스크립트 Ÿ 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 Ÿ 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 Ÿ 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다 10 강. 쉘스크립트 쉘스크립트 쉘은명령어들을연속적으로실행하는인터프리터환경을제공 쉘스크립트는제어문과변수선언등이가능하며프로그래밍언어와유사 프로그래밍언어와스크립트언어 -프로그래밍언어를사용하는경우소스코드를컴파일하여실행가능한파일로만들어야함 -일반적으로실행파일은다른운영체제로이식되지않음 -스크립트언어를사용하면컴파일과정이없고인터프리터가소스파일에서명령문을판독하여각각의명령을수행

More information

PowerPoint 프레젠테이션

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

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.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

슬라이드 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

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문

1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1 장 C 언어복습 표준입출력배열포인터배열과포인터함수 const와포인터구조체컴파일러사용방법 C++ 프로그래밍입문 1. 표준입출력 표준입출력 입력 : 키보드, scanf 함수 출력 : 모니터, printf 함수문제 : 정수값 2개를입력받고두값사이의값들을더하여출력하라. #include int main(void) int Num1, Num2; int

More information

YRRZBRRLMCEQ.hwp

YRRZBRRLMCEQ.hwp C언어2 4차시강의자료 이대종( 한경대학교) 1 차시. 자료형( 데이터유형) 1.1 문자형데이터형식 ( char 형 ) 1.2 소수점이없는정수형 ( int 형 ) 1.3 소수점이있는실수형 (float 형, double 형 ) 2 차시. 연산자 2.1 2.2 2.3 2.4 산술연산자 증감연산자 관계연산자 논리연산자 3 차시. 제어문 ( 조건문, 반복문) 3.1

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

untitled

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

More information

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor

Microsoft PowerPoint - 08-C-App-19-Quick-Preprocessor 19. 전처리와분할컴파일 순천향대학교컴퓨터학부이상정 1 학습내용 전처리명령어 #include #define 기호상수 const 분할컴파일 순천향대학교컴퓨터학부이상정 2 전처리과정 전처리 (preprocessor) 전처리명령어는 # 기호로시작 #incldue #define 순천향대학교컴퓨터학부이상정 3 #include (1) 지정된파일을프로그램에삽입 꺽쇠괄호는포함할파일을컴파일러에설정되어있는특정디렉토리에서검색

More information

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp

5장. JSP와 Servlet 프로그래밍을 위한 기본 문법(완성-0421).hwp 1 0 1.7 6 5 'A ' '/ u 4 4 2 2 ' " JS P 프로그래밍 " A ', 'b ', ' 한 ', 9, \ u d 6 5 4 ' c h a r a = 'A '; 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 < % @ p a g e c o n te n

More information

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

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 15 고급프로그램을 만들기위한 C... 1. main( ) 함수의숨겨진이야기 2. 헤더파일 3. 전처리문과예약어 1. main( ) 함수의숨겨진이야기 main( ) 함수의매개변수 [ 기본 14-1] main( ) 함수에매개변수를사용한예 1 01 #include 02 03 int main(int argc, char* argv[])

More information

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

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

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

Microsoft 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 information

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

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

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

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

윤성우의 열혈 TCP/IP 소켓 프로그래밊

윤성우의 열혈 TCP/IP 소켓 프로그래밊 윤성우저열혈강의 C 프로그래밍개정판 Chapter 05. 상수와기본자료형 Chapter 05-1. C 언어가제공하는기본자료형의이해 윤성우저열혈강의 C 프로그래밍개정판 자료형은데이터를표현하는방법입니다. 실수를저장할것이냐? 정수를저장할것이냐! 값을저장하는방식이실수냐정수냐에따라서달라지기때문에용도를결정해야한다. 얼마나큰수를저장할것이냐! 큰수를표현하기위해서는많은수의바이트가필요하다.

More information

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

Microsoft PowerPoint - chap11-1.ppt [호환 모드] chapter 11-1 참고자료. 파일입출력 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr k 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- ehanbit.net 파일입출력의개념 파일은데이터를입출력하는모든대상을의미한다. - 키보드로부터데이터를입력하고모니터로출력하는것은키보드파일과 모니터파일로데이터를입출력하는것이다.

More information

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

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

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

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

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

PowerPoint Template

PowerPoint Template 13 파일처리 1 함수 fopen() 파일열기 파일을만들기위해서는함수 fopen() 을이용 함수 fopen() 의함수원형은다음과같으며헤더파일 stdio.h 파일에정의 함수 fopen() 은두개의문자열전달인자를이용, 반환값은포인터값인 FILE * 2 파일열기 인자 함수 fopen() 에서 첫번째문자열은처리하려는파일이름이고, 두번째문자열은파일처리종류 ( 모드 )

More information

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4> 쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)

More information

PowerPoint Presentation

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

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

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 14 장포인터활용 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 이중포인터란무엇인가? 포인터배열 함수포인터 다차원배열과포인터 void 포인터 포인터는다양한용도로유용하게활용될수있습니다. 2 이중포인터

More information

PowerPoint Presentation

PowerPoint Presentation 컴퓨터프로그래밍 Computer Programming 08 포인터기초 목차 1. 포인터변수와선언 2. 간접연산자 * 와포인터연산 3. 포인터형변환과다중포인터 컴퓨터프로그래밍 (Computer Programming) - 08 포인터기초 3 1. 포인터변수와선언 주소개념 주소 address 메모리공간은 8비트인 1 바이트마다순차적인고유한번호 메모리주소는저장장소인변수이름과함께기억장소를참조하는또다른방법

More information

기초컴퓨터프로그래밍

기초컴퓨터프로그래밍 구조체 #include int main() { } printf("structure\n"); printf("instructor: Keon Myung Lee\n"); return 0; 내용 구조체 (struct) Typedef 공용체 (union) 열거형 (enum) 구조체 구조체 (structure) 어떤대상을표현하는서로연관된항목 ( 변수 )

More information