
C언어 개요기본 구조절차지향적 프로그래밍

C 언어는 다양한 자료형으로 데이터를 표현하고 처리할 수 있다. 자료형은 변수의 크기, 저장 방식 및 표현 가능한 값의 범위를 결정하는 중요한 요소이다.
변수는 프로그램에서 데이터를 저장하고 처리하기 위해 사용되는 메모리 공간의 이름이다. 변수는 특정한 자료형을 가지며 값을 저장하고 변경할 수 있다.
상수는 프로그램에서 고정된 값을 나타내는 식별자이다. 상수는 프로그램 실행 도중에 변경할 수 없는 값으로 간주된다.
식별자는 변수, 함수, 상수 등의 이름을 지정하는 데 사용되는 단어 또는 문자열을 뜻한다. 정보를 처리하고 식별하리 위해서는 그 정보를 가리킬 방법이 있어야 하기 때문에 C언어 뿐만이 아닌 정보를 다루는 모든 체계에서 사용되는 개념이다.
예약어는 C 언어에서 문법 및 키워드 등의 특정 용도로 예약되어 있는 단어이다. 예약어는 변수명, 함수명, 식별자로 사용될 수 없다.
연산자는 다양한 연산을 수행하는 데 사용되는 기호나 키워드다. 연산자는 피연산자(operand)들을 이용하여 특정한 동작을 수행하고 결과를 반환한다. C 언어에는 다양한 종류의 연산자가 있으며, 주로 산술, 할당, 비교, 논리, 비트 연산 등을 수행한다.
서식 문자는 C 언어에서 형식화된 출력을 위해 사용되는 특수한 문자다. 서식 문자는 출력하는 값의 자료형과 형식을 지정하고, 출력 결과를 원하는 방식으로 서식화할 수 있도록 도와준다.
아스키 코드는 컴퓨터에서 문자를 나타내기 위해 사용되는 표준 인코딩 체계다. 각 문자에 대해 고유한 숫자 값을 할당하여 컴퓨터가 문자를 표현하고 처리할 수 있게 한다.
흐름 제어문은 프로그램의 실행 흐름을 제어하기 위해 사용되는 문장들의 그룹이다. 이를 통해 조건에 따라 코드 블록을 실행하거나 반복적으로 코드를 실행할 수 있다.
형 변환은 변수나 값의 자료형을 다른 자료형으로 변환하는 프로세스를 말한다. 형 변환은 명시적 형 변환과 암시적 형 변환 두 가지 유형이 있다.
함수는 코드의 재사용성과 모듈화를 위해 사용되는 코드의 집합이다. 함수는 특정 작업을 수행하는 코드 블록이며, 함수를 호출하여 해당 작업을 실행할 수 있다.
배열은 동일한 자료형을 가진 여러 개의 요소들을 순차적으로 저장하여 하나의 변수로 관리하는 변수다. 배열은 연속된 메모리 공간에 저장되며, 인덱스를 이용해 개별 요소에 접근할 수 있다.
포인터는 메모리 주소를 저장하고 해당 주소에 저장된 값에 접근하는 데 사용된다. 주소 연산자와 역참조 연산자를 사용하여 포인터를 사용할 수 있다. 이를 활용하면 배열, 할당, 함수 호출 등에서 효율적으로 값에 접근 가능하다.
데이터를 컴퓨터 내부로 받아들이는 것을 입력, 외부로 전송하는 것을 출력이라고 표현한다. 여기서 입력과 출력의 이동 경로 흐름을 스트림(Stream)이라 표현한다.
2차원 배열은 행과 열로 구성된 테이블 형태의 배열이다. 2차원 배열을 사용하면 행과 열의 인덱스를 사용하여 배열 요소에 접근할 수 있다.
C언어에서는 문자와 문자열을 다루기 위한 다양한 함수를 제공한다. 문자열의 길이를 반환하거나, 복사하거나, 이어 붙이는 등의 함수와 입/출력을 맡은 함수로 나뉜다.
구조체는 C 언어에서 여러 개의 다른 자료형을 묶어 하나의 새로운 자료형을 정의하는 데 사용된다. 구조체를 사용하여 관련된 데이터를 한 번에 처리하고 조작할 수 있다.
파일 입출력을 통해 파일에 데이터를 쓰거나 파일로부터 데이터를 읽을 수 있다. 이를 통해 프로그램은 파일과의 상호작용을 통해 데이터를 영구적으로 저장하고, 불러오는 것이 가능해진다.
메모리 구조는 프로그램이 실행되는 동안 OS가 사용되는 메모리 공간을 분류하는 방법을 말한다.
런타임 중에 필요한 메모리를 동적으로 할당하는 과정을 말한다. 프로그램 실행 전에 메모리가 미리 할당되는 정적 할당과 대조되는 방식이다. 런타임때 메모리 크기 조절, 생성 및 소멸 등 프로그래머가 자유롭게 메모리를 다룰 수 있기에 다양한 이점이 생긴다.
매크로(Macro)와 전처리기(Preprocessor)는 소스 코드를 컴파일하기 전에 사전에 처리되는 단계이다. 전처리기는 소스 코드의 일부를 수정하거나 다른 코드로 대체하여 최종적으로 컴파일러에 전달하는 역할을 한다.
파일 분할(File Splitting)은 큰 규모의 소스 코드를 나누어 개별 파일로 분리하는 작업을 의미한다. 이는 소스 코드의 가독성, 유지 보수성, 재사용성 등을 향상시키는 데 도움이 된다.