본문 바로가기

Programming Study

포인터 포인터 변수란? - 포인터 변수란 메모리의 주소 값을 저장하기 위한 변수이다. 포인터의 형 - 포인터의 형은 메모리 공간을 참조하는 기준이 된다. int * //int형 포인터 double * //double형 포인터 type * //type형 포인터 포인터 변수의 선언 int *ptr; //int형 변수를 가리키는 포인터변수 ptr의 선언을 의미 double *ptr2; //double형 변수를 가리키는 포인터변수 ptr2의 선언을 의미 unsigned int *ptr3; //unsigned int형 변수를 가리키는 포인터변수 ptr3의 선언을 의미 포인터의 선언시 *의 위치는 상관이 없다. int * ptr; int* ptr; int *ptr; -> 모두 동일한 의미를 가진다. &연산자 - &연산자는.. 더보기
큐(Queue) 큐의 정의 - 선형리스트에서 한쪽에서는 삽입연산이 반대쪽에서는 삭제 연산이 이루어지도록 한 것. - 가장 먼저 삽입된 데이터가 가장 먼저 삭제되는 성질을 갖는다. - rear : 큐에서 데이터의 삽입이 이루어지는 쪽, 가장 최근에 삽입된 데이터의 위치를 가리킴. - front : 큐에서 데이터의 삭제가 이루어지는 쪽, 가장 최근에 삭제된 데이터의 위치를 가리킴. 큐의 기본 연산 큐의 생성 #define QUEUE_SIZE 100 typedef struct { char *item1[20] int item2; ··············· }Element; Element queue[QUEUE_SIZE]; int rear = -1; // 최초 생선된 큐는 공백.. 더보기
스택(stack) 스택의 정의 - 선형 리스트에서 데이터의 삽입과 삭제를 한 방향에서 이루어지도록 한 것. 스택의 기본연산 스택의 생성 #define STACK_SIZE 100 typedef struct { char *item1[20] int item2; ······· }Element; Element stack[STACK_SIZE]; int top = -1 //스택을 공백 상태로 초기화시키기 위해서 top의 값을 -1로 설정 스택의 포화/공백 상태 검사 함수 bool IsFull(int top) { if(top >= STACK_SIZE-1) return true; //포화상태 else return false; } bool IsEmpty(int top) { if(top == 1) return true; //공백 스택 상태 .. 더보기
자료구조의 구분 더보기
재귀함수 재귀함수란? 재귀함수란 함수 내에서 자기 자신을 다시 호출하는 함수를 의미. void Recursive(void) { printf("Recursive call! \n" Recursive(); //자신을 다시 호출. } - 윤성우 저, 열혈강의 C프로그래밍 中 - 더보기
함수_2 지역변수와 전역변수의 차이점 - 메모리상에 존재하는 기간 - 변수에 접근할 수 있는 범위 함수 내에만 존재 및 접근 가능한 지역변수(Local Variable) - 중괄호 내에 선언되는 변수는 모두 지역변수이다. - 지역변수는 '스택(stack)'이라는 메모리 영역에 할당. - 지역변수는 접시에 쌓듯이 할당 "지역변수는 해당 선언문이 실행될 때 메모리 공간에 할당되었다가, 선언문이 존재하는 함수가 반환을 하면(종료를 하면) 메모리 공간에서 소멸된다." 지역변수는 함수의 정의에만 존재하는 것이 아니라 반복문이나 조건문에도 선언이 가능하다. 지역변수는 외부에 선언된 동일한 이름의 변수를 가리게 된다. 지역변수의 일종인 매개변수 - 함수를 정의할 때 선언하는 매개변수도 지역변수의 일종. 매개변수가 가지는 지역.. 더보기
함수_1 함수를 만드는 이유 - 급하다고 해서 한꺼번에 모든 문제를 해결하려 들지 말고, 작은 문제부터 하나씩 해결해 나아가자는 뜻. 크고 복잡한 문제를 작게 나눠서 하나씩 해결해 나가는 것이 보다 빠르게, 그리고 정확히 문제를 해결하는 원칙이 된다. 전달인자의 유무와 반환 값의 유무에 따라서 함수를 네개의 형태로 나눈다. - 유형 1 : 전달인자 있고, 반환 값 있다! 전달인자(○), 반환 값(○) - 유형 2 : 전달인자 있고, 반환 값 없다! 전달인자(○), 반환 값(×) - 유형 3 : 전달인자 없고, 반환 값 있다! 전달인자(×), 반환 값(○) - 유형 4 : 전달인자 없고, 반환 값 없다! 전달인자(×), 반환 값(×) 키워드 return - 키워드 return은 값을 반환 하면서 함수를 빠져나갈때 .. 더보기
continue & break break - break문이 실행되면, break문을 가장 가까이서 감싸고 있는 반복문 하나를 빠져 나오게 된다. continue - continue문이 실행되면, 실행중인 위치에 상관없이 반복문의 조건검사 위치로 이동한다. 그리고 검사결과 반복조건이 여전히 '참'이라면 반복영역을 다시 실행하게 된다. - 윤성우 저, 열혈강의 C프로그래밍 中 - 더보기
자료형_2 문자의 표현은 아스키(ASCII)코드로. - C언어는 '미국 표준 협회(ANSI)'에 의해서 제정된 '아스키코드'라는 표준을 선택해서 문자를 표현. - 아스키코드는 알파벳과 일부 특수문자를 포함하여 총 128개의 문자로 이뤄져 있다. char는 문자형인가 아님 정수형인가 - char형은 문자의 표현을 목적으로 정의된 자료이기 때문에 '문자형'으로 분류하기도 한다. 하지만 char형은 정수형이다. 문자도 정수의 형태로 표현이 되고, 실제로 char형 변수에 저장되는 것은 정수이다. 상수 - 상수란, 그 이름이 의미하듯이 변경이 불가능한 데이터를 뜻함. - 상수는 크게 이름이 있는 상수와 이름이 없는 상수로 나뉜다. - 상수 역시 앞서 설명한 int, double과 같은 자료형을 근거로 표현된다. 이름을 지.. 더보기
자료형_1 자료형이란? - 자료형은 데이터를 표현하는 기준. 때문에 변수도 상수도 자료형에 근거 - 자료형은 변수선언에 사용하는 것. 기본 자료형의 종류와 데이터의 범위 참고로 C의 표준을 정하는 ANSI에서는 다음과 같은 정도로만 자료형의 크기를 표준화하고 있다. "short와 int는 최소 2바이트이되, int는 short와 크기가 같거나 더 커야 한다." 즉, 자료형 별 크기를 정확히 제한하고 있지 않다. 이렇게 많은 수의 자료형을 제공하는 이유는? - 데이터의 표현방식이 다르므로, 최소 둘 이상의 자료형이 필요함. - 메모리 공간의 사용을 위해서 다양한 크기의 자료형이 필요함. 연산자 sizeof - sizeof를 이용하면 자료형의 크기를 확인 할수 있다. 정수를 표현 및 처리하기 위한 일반적인 자료형의 선.. 더보기