직대딩 블로그

C언어 정리 본문

프로그래밍/C

C언어 정리

Jae Yeon 2023. 3. 12. 18:03

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
Comments