CSE/C Language
-
[C Language] 29. 1차원 배열 - C 언어CSE/C Language 2015. 7. 16. 17:47
1. 1차원 배열의 정의 1차원 배열은 다음과 같은 형식으로 정의한다. 배열요소형 배열명[첨자]; 1234 int dim[1024]; char name[512]; float same[10]; cs 배열요소형은 int, char, char *, float 등의 배열요소에 대한 형을 뜻하며, 배열명은 배열을 대표하는 이름이다. 앞에서 한 학급의 총점을 구하기 위해서 student를 사용했는데, 배열명을 사용할 때 배열이 어떠한 성격을 가지는지 파악할 수 있도록 신경써서 배열명을 짓도록 하자. 배열의 크기는 배열의 전체 크기를 지정한다. 배열의 크기는 2의 배수로 지정하는 것이 시스템에서 동작할 때 연산을 빨리 진행하고 메모리 단편화(Memory Fragmentation)를 막을 수 있다. 그래서 시스템 프로..
-
[C Language] 28. 배열 개요 - C 언어CSE/C Language 2015. 7. 16. 16:43
1. 배열의 필요성 배열이 얼마나 유용한 개념이고 프로그램상에서 얼마나 요긴하게 사용될 수 있는지 알아보자. 어느 학교의 선생님이 학급의 성적을 관리하고 싶을 때 다음과 같은 과정이 필요할 것이다. 학급 총원은 40명이다. - 학급의 학생 이름을 모두 나열한다. - 학생 이름 옆에 성적을 기입한다. - 학생별 총점, 평균을 구한다. - 국어, 영어, 수학의 학급 전체 총점과 평균을 구한다. - 학급 전체의 총점과 평균을 구한다. 이를 위해서는 모두 40명에 대한 변수가 필요하며, 아래와 같이 작성해서 총점과 평균을 구할 수 있다. 1234 int a, b, c, d, e, f, ... total = a + b + c + d + e + ... ave = total / 40;cs 일일이 모든 변수를 나열하기..
-
[C Language] 27. 시간함수 - C 언어CSE/C Language 2015. 7. 16. 15:40
1. 시간함수의 유용성 시간함수는 여러 가지로 요긴한 함수이다. 난수를 발생시킬 때 시간을 seed로 사용하면 결코 같은 순서로 난수를 발생시키지 않으며, 프로그램 중 오류 발생 시 그 시각을 로그에 저장하면 나중에 오류 분석에 유용하게 쓰일 수 있다. 또한, 특정한 시간에 되었을 때 어떠한 함수를 실행시켜야 한다면 역시 시간함수는 유용하게 사용될 수 있다. 2. time.h 시간함수에 대한 원형은 time.h에 선언되어 있으며, 기본적으로 1970년 1월 1일 자정 이후로 경과한 시간을 초로 환산한 값이나 tm 구조체를 사용하여 시 간을 구한다. 먼저 tm 구조체를 살펴보도록 하자. 12345678910111213struct tm{ int tm_sec; /* Seconds: 0-59 (K&R says ..
-
[C Language] 26. 함수 - 재귀함수(Recursive) - C 언어CSE/C Language 2015. 6. 13. 10:23
1. 재귀함수의 사용방법 아래 예제를 통해 재귀함수를 사용한 예제 1부터 100까지 더하는 예제를 보자. 123456789101112131415161718192021222324252627/* * recur1.c * * Created on: 2015. 5. 17. * Author: root */ #include int sum(int); int main(void) { int result = 0; result = sum(100); printf("Result = %d\n", result); return 0;} int sum(int x) { if (x == 0) return x; else return x + sum(x - 1);}Colored by Color Scriptercs 2. 재귀함수의 문제점 - 재귀함수..
-
[C Language] 25. 함수 - 리턴 값 여러 개 받기 - C 언어CSE/C Language 2015. 6. 13. 10:22
1. 전역변수를 이용한 리턴 값 받기 가장 간단하지만 가장 위험한 전역변수를 이용한 리턴 값 받기를 살펴보자. 1234567891011121314151617181920212223242526272829303132333435/* * global.c * * Created on: 2015. 5. 17. * Author: root */ #include int add, subtract, multiply, divide; void calculate(int, int); int main(void) { int x = 7, y = 5; calculate(x, y); printf("%d + %d = %d\n", x, y, add); printf("%d - %d = %d\n", x, y, subtract); printf("%d ..
-
[C Language] 24. 함수 - 참조에 의한 호출(Call By Reference) - C 언어CSE/C Language 2015. 6. 13. 10:21
값에 의한 호출이 '복사'라는 중요한 개념을 가지고 있다면, 참조에 의한 호출(Call By Reference)는 '참조'라는 중요한 개념을 가지고 있다. 아래 예제를 통해 이전 장에서 값을 바꾸는 예제를 참조를 통한 예제로 확인하자. 123456789101112131415161718192021222324252627282930313233343536373839/* * rSwap.c * * Created on: 2015. 5. 17. * Author: root */ #include void swap(int *, int *); int main(void) { int x = 7, y = 5; puts("Inside main() function"); printf("1. x = %d, y = %d\n", x, y);..
-
[C Language] 23. 함수 - 값에 의한 호출(Call By Value) - C 언어CSE/C Language 2015. 6. 13. 10:21
값에 의한 호출을 이야기할 때 빠져서는 안 되는 개념이 있다. 바로 매개변수이다. 매개변수는 형식 매개변수와 실 매개변수로 나뉘는데, 호출하는 쪽의 인자를 실 매개변수라 하고, 호출 당하는 쪽의 인자를 형식 매개변수라 한다. 아래 예제를 통해 살펴보자. 숫자를 입력하면 입력한 숫자 값까지 1부터 더하는 예제이다. 아래 예제에서 total = sum(num)에서 num은 실 매개변수이다. 이 값이 아래의 sum(int x) 함수의 x에 복사되어 전달된다. 12345678910111213141516171819202122232425262728293031323334353637/* * sumuntil.c * * Created on: 2015. 5. 17. * Author: root */ #include int s..
-
[C Language] 22. 함수(function)의 기본 - C 언어CSE/C Language 2015. 6. 13. 10:20
1. 함수의 구조 함수의 본체는 아래와 같은 구조로 되어 있다. return_type function_name(args) {선언자; 수행문;수행문;... } return_type: function_name이라는 함수가 결과 값을 구한 후, 호출한 함수에게 넘겨주는 값에 대한 자료 형(data Type)을 뜻한다. function_name: 말 그대로 함수의 이름이다. args: function_name()을 호출할 때 넘겨주는 인자(arguments)를 지칭한다. 다음과 같은 형태로 함수를 사용할 수 있다. 1. int swap(int x, int y) 2. char *add(char *one, char *two) 3. int add(int x, int y) 4. void gugudan(int dan);..