스터디/C(basic) 6

동적 할당과 메모리 관리

1. 기억공간C에서의 기억공간 - 프로그램의 실행을 위한 기억공간은 운영체제에서 할당 - 할당되는 기억공간의 영역 : 데이터 영역, 힙 영역, 스택 영역 1) 기억공간의 확보  ① 메모리 정적할당(Static Allocation)- 기억공간의 데이터 영역과 스택 영역 이용- 프로그램을 작성하는 단계에서 필요한 기억공간의 크기를 결정 ② 메모리 동적할당(Dynamic Allocation)- 기억 공간의 힙 영역 이용 - 프로그램 실행중에 입력되는 자료에 맞게끔 기억공간의 크기를 결정 ③ 기억공간의 할당영역데이터 영역 : 전역변수와 static변수가 저장되는 영역 (정적 할당)스택 영역 : 지역변수와 매개변수가 저장되는 영역  (정적 할당)힙 영역 : 프로그래머의 필요에 의해 할당/소멸이 이루어지는 영역 (..

스터디/C(basic) 2024.04.19

Struct & Union

1. Struct (구조체)- 사용자 정의 자료형 - 다양한 형식의 자료를 간결한 형식으로 표현, 사용자가 새로운 형식을 정의하여 사용- 서로 다른 자료형을 갖는 자료들의 모임을 하나의 자료형으로 정의하여 사용하는 자료형  예) 10대 차량에 대한 자료처리의 경우 (일반 변수 사용법과 비교) 1) 구조체의 정의와 변수의 선언 - 구조체 태그 (사용자 정의 자료형) 정의 후 변수를 선언  ① 구조체 정의와 변수 선언 (3가지)struct 구조체이름 {} struct 구조체 이름 구조체변수; struct 구조체 이름{} 구조체변수; struct 구조체 이름{} 구조체 자료형 선언; 구조체 자료형 변수명;   2) 구조체 변수 선언 및 초기화  3) 구조체 멤버의 참조 - 구조체변수명. 멤버명 (X.name,..

스터디/C(basic) 2024.04.16

배열과 포인터

1. 배열동일한 자료형을 갖는 자료들의 리스트배열의 각 요소는 하나의 변수로 취급배열은 배열명과 첨자로 구분 1) 1차원 배열- 첨자가 하나만 있는 배열(첨자의 개수는 배열 전체의 구성요소의 개수의미)- 첨자의 개수는 배열 전체의 구성요소의 개수를 의미- 배열의 각 요소는 배열명과 첨자로 구분  첨자는 0부터 시작, 자료형과 기억 클래스 보유 ① 1차원 배열의 선언 - 1차원 배열로서, 배열명과 배열의 크기 (정수값이 기억됨)- array 배열명 : 기억공간 내 배열 영역의 시작주소- 자료형 배열명[개수]  ex) int a[10]  ( 배열명 a, 크기 10, 정수형 ) ② 1 차원 배열의 초기화 배열을 선언하면 기억공간을 초기화해야 함 - 배열선언 후 초기값 할당, { }사용- 배열선언과 동시에 초기..

스터디/C(basic) 2024.04.15

함수와 기억 클래스

1. 함수 특정한 작업(기능)을 수행하도록 설계된 독립적인 프로그램이러한 함수들이 정해진 순서에 따라 실행되어 프로그램의 기능을 수행  1) C프로그램의 함수- 전체의 실행내용을 몇개의 모듈로 분류- 각각의 모듈에 해당하는 내용을 함수로 작성- 실행 순서에 따라 그 함수들을 차례로 호출하여 실행 2) 함수의 특성- 함수들은 서로를 자유로이 호출가능, 모든 함수는 서로 독립적- 프로그램의 수정용이, 함수 재사용으로 코드중복 최소화, 프로그램의 기능을   한눈에 파악할수 있어 유지관리 용이 - 단위 프로그램을 하나의 함수에 기술하는 경우   → 함수 길이증가, 프로그램 가독성 저하, 수정의 어려움, 일부분 재호출 어려움   → 기능별로 독립된 단위(함수)로 구성하는 경우 효율적   2. 표준 함수1) C언어..

스터디/C(basic) 2024.04.15

입출력 함수와 연산자, 제어구조

함수 - 특정한 작업(기능)을 수행하도록 설계된 독립적인 프로그램 - 표준함수 : C언어 자체에서 제공하는 함수- 사용자 정의함수 : 사용자가 정의하여 사용하는 함수  1. 표준 입출력 함수출력(모니터) : printf(여러 종류 - 정수,실수,문자등 - 의 자료), putchar(1개 문자), puts(문자열)입력(키보드) : scanf(여러종류의 자료), getchar(1개 문자), gets(문자열) ① printf()함수 : 주어진 출력양식으로 자료를 출력    %d(10진 정수, 정수/문자), %u(부호없는 10진 정수, 정수/문자), %f(실수, 실수),     %e,%E(지수, 지수), %c(한문자, 정수/문자), %s(문자열, 문자열 포인터),     %o(부호없는 8진 정수/문자), %x,..

스터디/C(basic) 2024.04.14

C언어의 기본개요

1.  프로그래밍 언어로서의 C언어 프로그래밍 언어 사람과 컴파일러가 이해할수 있도록 약속된 형태의 언어 기계어, 어셈블리어, C, C++, C#, JAVA, PHP등  컴파일러 (번역기)프로그래밍 언어로 작성된 프로그램을 컴퓨터가 이해할수 있도록 기계어로 번역① 어셈블러 (assembler) : 기호로 표현된 어셈블리 코드를 기계어로 번역② 인터프리터 (interpreter) : 프로그램을 한 단계씩 기계어로 해석하여 실행하는    '언어처리 프로그램' ( 소스 프로그램을 한번에 기계어로 변환x ) C언어개발자 Denis Ritchie(1972년, Unix운영체제 구현에 목적)- 어셈블리 언어로 된 UNIX운영체제를 C언어로 대체- 컴퓨터 기종간 호환성을 가진 고급언어로 하드웨어 제어가능 1) 특징 -..

스터디/C(basic) 2024.04.13