본문 바로가기

C언어9

[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.
[C 프로그래밍] 입출력 함수와 연산자 함수란? 특정 작업(기능)을 수행하도록 설계된 독립적인 프로그램 C언어에서의 함수 표준 함수 : 언어 자체에서 제공하는 함수 사용자 정의 함수 : 사용자가 정의하여 사용하는 함수 표준 입출력 함수의 종료 표준 출력 함수 함수 설명 printf() 서식 지정자를 사용하여 출력합니다. putchar() 1개의 문자를 출력합니다. puts() 화면에 문자열을 출력 표준 입력 함수 함수 설명 scanf() 키보드를 통해 여로 종류의 자료를 입력받음 getchar() 키보드로 입력받은 문자를 1개 출력 gets() 키보드를 통해 문자열을 입력받음 출력 양식 변환기호표 출력 양식 변환 기호 자료형 설명 %d int 10진수로 부호 있는 정수를 출력합니다. %u unsigned int 10진수로 부호 없는 정수를 출.. 2023. 5. 10.
[C 프로그래밍] 자료형과 선행처리기 자료형 프로그램에서 사용하는 자료의 형태 상수 와 변수로 구분 프로그램에서 자료(Data) 처리를 위해서 생성과 저장 처리과정이 필요 상수(canstant) 항상 고정된 값을 갖는 자료(데이터) 값이 한번 정해지면 프로그램 도중 그 값을 변경 할 수 없다. 변수(variable) 변할 수 있는 값 프로그램 에서의 변수 → 실행 도중 값이 변할 수 있는 값이 저장되는 기억 공간을 의미 ex) i = 10; → i 라는 변수라는 기억 공간에 값이 계속 변할 수 있다. 기억 공간을 확보하기 위해 사전에 선언을 해야 한다. 선행처리기(Preprocessor) 컴파일에 앞서 프로그램 선두에 선언된 지시자들을 미리 처리하는 역할 종류 의미 #include 다른 파일에 있는 코드를 현재 파일에서 사용할 수 있도록 함.. 2023. 5. 10.
[C 프로그래밍] C언어의 정의 프로그래밍 언어 사람과 컴파일러가 이해할 수 있도록 약속된 형태의 언어 → 기계어, 어셈블리어, C, Cpp, C#, JAVA … 컴파일러 프로그래밍 언어로 작성된 소스 코드를 기계어로 변환하는 프로그램 (번역기 역할) 어셈블러(assembler) 기호로 표현된 어셈블리 코드를 기계어로 번역하는 번역기 인터프리터(interpreter) 소스 프로그램을 한번에 변환시키는 컴파일러와 다르게 프로그램을 한단계씩 기계어로 해석하여 실행하는 언어처리 프로그램 C언어의 역사 Dennis Ritchie(데니스 리치)가 1972년에 개발 유닉스 운영체제 구현에 사용할 목적으로 개발 → 컴퓨터 기종간 호환성을 가진 고급언어인 동시에 하드웨어를 제어하는 언어 저급언어의 역할도 필요해서 만들어짐 어셈블리 언어로 된 유닉스 .. 2023. 5. 10.
728x90