본문 바로가기

c6

[C 프로그래밍] 메모리 동적 할당 C언어 에서의 기억공간 프로그램의 실행을 위해 기억공간이 필요 운영체제에서 할당 할당되는 기억공간의 영역 데이터 힙 스택 기억 공간의 확보 방법 메모리 정적 할당(Static Allocation) 프로그램의 작성 단계에서 크기 결정 데이터 영역과 스택 영역을 이용 변수선언 등 할당 시켜야 할 기억공간의 크기를 알고 있을 경우 사용 미리 크기를 고정하여 사용 에러 발생 확률이 적다, 기억공간의 낭비가 심할 수 있다. 메모리 동적 할당(Dynamic Allocation) 기억공간의 힙 영역 이용 프로그램 실행 과정에서 크기가 할당이 된다. 많은 자료를 처리하는 배열의 크기를 실행시간에 정의해야할 경우 유용 크기를 실행시 지정하고 재조정이 가능하다. 실행 시간이 걸릴 수 있다. (단점) 기억공간의 할당 영역 .. 2023. 5. 10.
[C 프로그래밍] 파일처리함수 파일 입 출력의 개념 보조기억장치의 파일을 이용한 자료의 입 출력 (파일처리 함수 이용) 파일처리함수 보조기억장치(디스크)에 들어 있는 정보들의 모임인 파일을 제어하는 함수 파일 보조기억장치의 저장된 데이터의 모임 일련의 바이트(byte)들로 구성 C 프로그램은 운영체제를 통해 파일을 읽거나 쓴다. 파일의 종류 텍스트 파일(text) 화면에 출력되는 문자들로 구성된 파일 2진 파일(binary) 텍스트 파일을 포함한 모든 종류의 자료를 다루는 파일 컴파일 되어 있어 기계어에 가까우므로 내용을 이해하거나 인쇄는 불가능 파일 입력 디스크 상의 특정 위치에 수록 되어있는 자료를 읽어 들여 기억공간에 수록하는 절차 파일출력 기억공간에 있는 자료를 디스크 상의 특정위치에 수록하는 절차 → 파일 포인터를 사용하여 .. 2023. 5. 10.
[C 프로그래밍] 구조체와 공용체 구조체(structure) 서로 다른 자료형을 갖는 자료들을 하나의 자료형으로 정의하는 자료형 구조체 → 사용자 정의 자료형 다양한 형식의 자료를 간결한 형식으로 표현 사용자가 새로운 형식을 정의하여 사용할 수 있다. 구조체의 정의 #include // 구조체 정의 struct student { char name[20]; int age; int id; }; int main() { // 구조체 변수 선언과 초기화 struct student s1 = {"John", 20, 12345}; // 구조체 멤버 접근 printf("Name: %s\\n", s1.name); printf("Age: %d\\n", s1.age); printf("ID: %d\\n", s1.id); return 0; } 함수에서의 구조체 .. 2023. 5. 10.
[C 프로그래밍] 배열과포인터 배열의 정의 동일한 자료형을 갖는 자료의 리스트 각 요소는 하나의 변수로 취급 배열 명과 첨자로 구분 Ex) array[0] array[1] 배열의 선언형태 첨자의 개수는 배열 전체의 구성요소의 개수 의미 1차원 배열 2차원 배열 3차원 배열 char 형 배열 (문자열 배열) 배열의 형이 문자열인 배열 배열명[문자열 길이 + 1] 의 개수를 가진다. *** 포인터(Pointer)** 변수의 일종이다. 특정 데이터가 저장된 기억장소의 주소 값을 가지고 있다. 일반적인 변수의 기억공간 표현 변수선언에 의해 기억공간이 할당 할당된 기억공간에 변수에 대입된 데이터가 저장 할당된 기억공간은 주소가 부여된다. 포인터의 개념 주소를 이용하여 변수와 같은 동일한 작업이 가능 포인터 변수 - 포인터 값을 다루는 변수 (.. 2023. 5. 10.
[C 프로그래밍] 함수 함수 특정 작업(기능) 을 수행하도록 설계된 독립적인 프로그램 함수들이 정해진 순서에 따라 실행 됨으로 프로그램의 기능 수행 C 프로그램은 함수들로 구성 되어 있다. 전체 실행 내용을 몇개의 모듈로 분류 각각의 모듈에 해당하는 내용을 함수로 작성 함수의 특성 자유롭게 호출이 가능하며 독립적이다. 장점 프로그램 수정이 용이하다. 재사용이 가능하여 코드 중복을 최소화 해준다. 프로그램의 기능을 한 눈에 파악할 수 있게 해줌으로 유지 관리가 쉽다. 매개변수 사이의 자료전달 방법 값에 의한 자료전달(call by value) 기본적인 자료전달 방법 실 매개변수와 형식 매개변수 사이에 값의 전달 호출한 함수의 실행이 끝난 다음 전달 받은 값을 되돌려 받지못한다. #include void swap(int x, in.. 2023. 5. 10.
[C 프로그래밍] 제어문(선택, 반복, 기타) 프로그래밍 언어의 제어 구조 순차적 제어 특별한 지정이 없는 한 위에서 아래로 수행 되는 제어 구조 (일반적 구조) 선택적 제어 주어진 조건에 따라 특정 부분으로 수행을 옮기는 분기 제어 구조 반복적 제어 특정 부분을 일정한 횟수만큼 반복 수행하는 반복 제어구조 선택 제어문의 종류 if 문 switch ~ case 문 goto (무조건 분기) 프로그램의 실행 위치를 지정된 레이블(label)로 이동시키는 제어문 #include int main() { int i = 0; loop: printf("%d\\n", i); i++; if (i < 10) { goto loop; // loop 위치로 돌아감 } return 0; } 반복제어문의 종류 for 문 while문 do ~ while문 do { // 반복적으.. 2023. 5. 10.
728x90