직대딩 블로그
C언어 정리 본문
1. C언어란?
- 프로그램을 만들기 위한 각종 언어들 중 한가지의 언어 (우리가 말을 할 때 한국어를 사용하고 미국사람은 영어, 일본사람을 일본어를 사용한다. 이처럼 언어라는 것은 오직 하나만 있는 것이 아니듯 프로그래밍 언어도 마찬가지로 다양한 언어가 존재하는데 그 중 한 가지 언어이다)
- 사람과 컴퓨터가 대화하기 위한 매개체 (사람은 컴퓨터에게 어떤 작업을 시키길 원하고 컴퓨터는 사람이 시킨 작업을 수행해야 한다. 그러나 컴퓨터란 0,1만을 이해할 수 있는 기계이다. 즉, 사람은 컴퓨터에게 0,1로 이루어진 명령을 통하여 작업을 지시해야 한다. 하지만 사람이 0,1로 이루어진 명령을 사용하기엔 너무나 어렵다. 그래서 등장을 한 것이 프로그래밍 언어이다. 우리는 프로 그래밍 언어를 이용하여 컴퓨터에게 명령을 전해 줄 수 있는 것이다. 사람은 프로그래밍 언어를 알고 컴퓨터는 0,1로 이루어진 명령(기계어)를 알고 있다. 하지만 서로의 언어를 이해 할 수는 없다, 그래서 중간에서 통역사 역할을 해주는 장치가 있는데 그것을 우리는 컴파일러(Compiler)라고 부른다, 컴파일러는 프로그래밍언어와 기계어를 모두 알고 있어 사람과 컴퓨터의 통역사역할을 해주는 것이다.)
※ 사람이 이해해기 쉬운 프로그래밍 언어를 High-Level Language(고급 언어),
기계가 이해하기 쉬운 프로그래밍 언어를 Low-Level Language(저급 언어)라고 부른다.
2. C언어의 특징과 프로그램 작성과정
특징)
- 절차 지향적 프로그래밍 언어
- 높은 이식성
- 높은 효율성
작성과정)

- 프로그램작성(소스 파일) -> 컴파일 -> 링킹 -> 결과물 생성(실행 파일)
3. 프로그램 기본 구성
3-1. 함수
- 특정 인자를 받아 결과 값을 반환하는 개체
- C언어 프로그램은 하나 이상의 함수가 모여 있는 프로그램

입력과 출력으로 이루어져있다.
3-2. 함수의 형태
- 함수이름 : 실행하고자 하는 함수의 이름 ㅤㅤ
- 입력형태 : 함수를 실행할 때 전달할 인자의 형태
- 출력형태 : 함수가 실행되고 종료될 때 반환되는 값의 형태
- 함수의 몸체 : 함수의 실행 내용
int main(void){
}
라는 함수에서 int가 출력형태, main이 함수이름, (void)가 입력형태를 뜻한다. 함수의 몸체는 { } 부분.
3-3. 메인 함수
- C언어 프로그램의 가장 핵심이 되는 함수
- 메인 함수의 호출은 프로그램의 시작을 의미하고 메인 함수의 끝은 프로그램 의 종료를 의미 함
- 일반적인 함수 호출은 사용자가 하지만 메인 함수의 호출은 운영체제가 함
3-4. 헤더파일
- 함수의 선언이 포함되어 있는 파일
- 확장자는 .h 를 사용
- 사용자는 미리 정의되어 있는 함수를 사용하기 위해서는 그 함수가 선언되어 있는 헤더파일을 포함해야 함
- 예를 들어 printf라는 함수를 사용하기 위해서는 printf가 선언되어 있는 stdio.h 라는 헤더파일을 포함해야 함 ※ stdio : standard input output 의 약자로 표준입출력관련 함수들이 선언되어 있음
4. 데이터 형
4-1. 데이터 형이란?
- 데이터의 형태(정수, 실수, 문자)를 구분하며, 데이터의 범위나 부호의 사용여부 등을 결정짓는 것
4-1-1. 정수 형
- 소수점 이하를 표현하지 못하는 데이터 형
- unsigned 가 붙으면 부호가 없는 데이터 형을 의미 함

※ int 형의 크기는 정해져 있지 않다, 32bit 환경일 경우 컴파일러에 따라 2Byte 또는 4Byte 일수 있다.
(이거때문에 예전에 호되게 당한 적이 있다.)
4-1-2. 실수 형
- 소수점 이하를 표현할 수 있는 데이터 형
- 실수 데이터 형에는 unsigned를 사용할 수 없음
- 실수는 부동소수점 방식으로 표현 함
- 부동소수점에는 오차가 존재 하는데, 이 때문에 컴퓨터는 정확한 실수 값을 표현 할 수 없음

4-1-3. 문자 형
문자 형 - 컴퓨터는 0,1의 2진수만을 표현하기 때문에 문자를 표현할 수 없음
- ASCII 코드를 이용하여 문자를 표현
※ ASCII(American Standard Code for Information Interchange) :
미국 표준 협회 (ANSI, American National Standard Institute)에서 제정한 문자의 표현에 대한 약속(표준)

4-2. 데이터의 표현 방식
4-2-1. 2진수, 10진수, 16진수
- 2진수 : 두 개의 기호를 이용해서 값(데이터)를 표현하는 방식
- 10진수 : 열 개의 기호를 이용해서 값(데이터)를 표현하는 방식
- 16진수 : 열여섯 개의 기호를 이용해서 값(데이터)를 표현하는 방식
4-2-2. 데이터의 표현 단위 (비트, 바이트)
- 비트(bit) : 컴퓨터가 나타내는 데이터의 최소 단위로서 2진수 값 하나를 저장할 수 있는 메모리 공간을 의미
- 바이트(byte) : 데이터처리 또는 문자의 최소 단위로서 8개의 비트가 모여 하나의 바이트가 구성 됨
4-2-3. 정수의 표현방식
- 모든 정수의 가장 왼쪽에 있는 비트는 MSB(Most Significant Bit)라는 비트
- MSB란 부호를 나타내기 위한 영역으로서 0이면 양수, 1이면 음수를 의미 함
- MSB비트를 제외한 나머지 비트는 크기를 나타내는데 사용
4-2-4. 음의정수의 표현방식
- 음의 정수는 우리가 생각 하는 일반적인 방식으로 사용 하면 안 됨
- 음의 정수를 표현 시에는 2의 보수라는 것을 사용
- 2의 보수란 1의 보수에 1을 더한 값(1의 보수는 0과 1을 뒤집은 값)
4-2-5. 실수의 표현방식
- 실수를 표현하는 방식을 정수 표현 방식과 같이 표현 하면 표현 할 수 있는 범위가 매우 작음
- 넓은 범위의 실수를 표현하기 위하여 정의된 수식을 이용하여 사용
- 정의된 수식을 이용하면 넓은 범위의 실수를 표현 가능하지만 오차 존재한다는 단점이 있음,
이 오차를 ‘부동소수점 오차’라 부름
※ 부동 소수점 오차에 대한 문제는 컴퓨터의 문제이기 때문에 C언어에 국한된 문제가 아님, 따라서 다른 프로그래밍 언어들도 같은 문제를 가지고 있음
'프로그래밍 > C' 카테고리의 다른 글
C 언어 정리 3 (0) | 2023.03.12 |
---|---|
C언어 정리 2 (0) | 2023.03.12 |
2진수 변환후 1의 개수 세주기 (0) | 2023.03.12 |
지그재그로 출력하기 (0) | 2023.03.12 |
마방진 만들기 (0) | 2023.03.12 |