C언어

5 minute read


프로그램 작성 및 실행 순서


C언어 프로그램

프로그램이란, 컴퓨터에 여러 작업을 처리하기 위해 지시하는 것이다.

컴퓨터는 원래 기계어로 프로그램을 작성해야 하지만, 기계어는 0과 1로만 이루어져 있어 작성하기 어렵다.

그래서 사람이 이해하기 쉬운 프로그래밍 언어를 만들게 되었다.

C언어프로그래밍 언어 가운데 하나이다.


코드

C언어 프로그램으로 작성하려면 기본적으로 텍스트 파일에 C언어의 문법에 따라 프로그램을 입력해야 한다.

이 형식의 프로그램을 소스 코드, 혹은 코드라고 한다.

코드가 저장되어 있는 파일소스 파일이라고 한다.


프로그램 작성

C 언어를 기계어로 변환하는 작업을 컴파일이라고 하고, 이 작업에는 컴파일러라는 소프트웨어가 사용된다.

컴파일러를 실행하면 보통 소스 코드가 저장되어 있는 폴더에 기계로 번역된 파일인 오브젝트 파일이 작성된다.

오브젝트 파일을 결합시켜, 실행 할 수 있는 형식의 프로그램을 완성시킨다. 이 작업을 링크라고 한다.


프로그램 실행 순서

  1. C언어 코드 입력

  2. 컴파일러를 실행시켜 작성하는 소스 파일 컴파일

  3. 링커를 실행시커 컴파일된 오브젝트 파일 링크

  4. 작성된 프로그램 실행


c언어의 기본



main 함수

int main()

main()는 프로그램의 본체이다.

C언어는 원칙적으로 main()이라고 표기한 부분부터 처리가 이루어진다.

return 0;

프로그램을 종료한다.

main 함수 뒷부분에는 괄호( { } )를 입력해야 한다. 이 { }부분을 블록이라고 한다. main()부터 시작하는 이 블록은 프로그램의 본체로 main() 함수라고 한다.

C언어는 하나의 작은 처리(작업)을 문이라고 하며 마지막에 ;을 붙인다. 문은 원칙으로 처음부터 차례대로 하나씩 처리된다.


주석

/* 화면으로 문자를 출력하는 코드 */

주석은 /* 부터 */까지의 문자를 무시하고 처리한다.

프로그램 처리와 직접적으로 관계 없는 말을 메모처럼 입력할 수 있다.

주석을 사용해서 코드의 내용을 이해하기 쉽게 작성한다.


인클루드

#include <stdio.h>

#기호가 붙은 부분은 화면으로 표시를 실행하는 기능이 포함된stdio.h라는 파일을 컴파일 전에 읽어두는 처리를 나타낸다.

이와 같이 다른 파일을 읽어 들이는 것인클루드라고 한다.

stdio.h 파일은 C언어의 개발환경에 표준으로 준비되어 파일로 이와 같은 미리 읽어 들이는 파일헤더 파일이라고 한다.

#기호가 있는 줄프리프로세서라고 하고 다른 코드를 번역하기 전에 먼저 읽어 들인다.


화면 출력


printf

printf();

printf문은 화면으로 문자열을 표시하게 하는 처리를 한다.

printf는 표준 출력이라고 하며, 컴퓨터 장치에 대해서 출력을 하도록 지시한다.

표준 출력은 일반적으로 지금 사용하고 있는 화면 장치를 의미한다.

운영채제의 기능에 따라 프린터와 같은 다른 출력 장치로 변경할 수 있고, 이와 같은 기능을 리디렉트라고 한다.


줄바꿈

printf() 안에 \n를 사용하면 문자열을 줄바꿈 할 수 있다.


변환 사양

문자열 내에 %●와 같이 입력하면 이 분에’,’ 뒤에 있는 문자나 수치를 대입해서 출력하는 구조를 가지고 있다.

%●는 변환 사양 또는 변환 지정이라고 하며, ●부분은 출력할 문자나 수치에 따라 서로 다른 기호를 사용한다.


문자

C언어는

문자 상수

문자의 나열

2 종류로 구분한다.

문자 상수는 ‘ ‘를 이용해서 코드 안에 표기한다.

문자를 출력하기 위해서는 변환 사양’%c’을 사용하며 ‘%c’에 문자가 대입되어 출력된다.

2개 이상의 변환 사양을 사용하면 콤마 뒤의 문자와 수치가 순서대로 출력된다.


이스케이브 시퀸스

문자 중에 키보드로부터 입력할 수 없는 특수한 문자가 있다. 문자에 대해서 \을 앞에 붙인 두개의 문자를 조합해서 ‘한 개의 문자 크기’로 나타내는 것을 이스케이프 시퀸스라고 한다.

이스케이프 시퀸스 의미하는 문자
\a 경고음
\b 백 스페이스
\t 수평 탭
\v 수직 탭
\n 줄 바꿈
\f 피드백
\r 캐리지 리턴
\’
\”
\\ \
\? ?
\ooo 8진수 ooo의 문자 코드를 갖는 문자
\xhh 16진수 xhh의 문자 코드를 갖는 문자


문자열

문자열은 “ “로 묶어서 표기한다.

문자와 문자열은 취급이 다르다.


수치

C언어에서의 상수는

정수 상수 - 1, 3, 100 등

부동소수점 상수 - 2.1, 3.14, 5.0 등

의 수치를 표기할 수 있다.

수치는 ‘ ‘나 “ “로 묶지 않고 표기하며

수치를 출력할 경우 정수는 %d, 부동소수점수는 %d의 변환 사양을 사용한다.


변수


프로그램을 실행할 때 프로그램은 컴퓨터에 여러 가지 값을 기억시키면서 처리한다.

컴퓨터는 여러 가지 값을 기억해 두기 위해 내부에 메모리라는 장치는 가지고 있다.

변수는 컴퓨터의 메모리를 이용해 값을 기억한다.

변수라는 상자 안에 값을 넣듯이 특정한 값을 메모리에 기억시킬 수 있다.


식별자

코드 안에서 변수를 사용하려면 두가지를 결졍해야 한다.

1 변수에 ‘이름’을 붙인다.

2 변수의 ‘형’을 지정한다.

변수를 사용하려면 변수를 위한 특정한 ‘이름’을 준비해야한다. 이를 식별자라고 한다.

식별자는 다음과 같은 규칙이 있다.

영문, 숫자, 밑줄 문자 가운데 하나를 사용할 수 있고, 특수 기호를 포함할 수 없다.

환경에 따라 31문자까지 제한된다.

미리 C언어에서 예악하고 있는 예약어 를 사용할 수 없다.

숫자로 시작할 수 없다.

대문자와 소문자는 구별된다.


변수에는 값을 기억시킬 수 있으며, 값에는 몇 가지 종류가 있다. 변수에 기억되는 값의 종류를 데이터 또는 이라고 한다.

종류 이름 크기 기억 할 수 있는 값의 범위
문자형 char 1 바이트 영문숫자 1문자     -128 ~ 127
  unsigned char 1 바이트 영문숫자 1문자     0 ~ 255
정수형 short int 2 바이트 정수     32768 ~ 32767
  unsigned short int 2 바이트 정수     0 ~ 65535
  int 4 바이트 정수     0 ~ -2147483648
  unsigned int 4 바이트 정수     0 ~ 4294967295
  long int 4 바이트 장정수     -2147483648 ~ 2147483647
  unsigned long int 4 바이트 장정수     0 ~ 4294967295
부동소수점형 float 4 바이트 단정밀도 부동소수점수     3.4E-38 ~ 3.4E+38
  double 8 바이트 배정밀도 부동소수점수     1.7E-308 ~ 1.7E+308
  long double 8 바이트 확장 배정밀도 부동 소수점수     1.7E-308 ~ 1.7E+308


비트와 바이트

형의 크기와 값의 범위는 깊은 관계가 있다 컴퓨터는 수를 0과 1만을 사용한 2진수로 인식한다. 2진수의 ‘한 자릿수’를 비트fkrh gksek.

1비트는 2진수의 한 자릿쉐 해당하는 ‘0’이나 ‘1’ 가운데 하나로 값을 표현할 수 있습니다. 또한 2진수의 8자리 수치는 바이트라고 한다. 따라서

1 바이트 = 8비트 이다. 1바이트는 28 = 256가지의 값을 표현할 수 있다.

1비트에서 가장 앞자리의 수는 0이면 양수, 1이면 음수를 나타낸다.

short int에서 01111111는 양수에서 가장 큰 수 인 32767이 되는 것고,
  
10000000는 음수에서 가장 작은 수인 -32768이 된다.


변수 선언

변수를 사용하기위해서 변수를 준비하는 작업이 필요하다. 이 작업을 변수를 선언한다 라고 한다.

변수 선언

형 이름    식별자;


변수 값의 대입

변수를 선언하면 변수에 특정한 값을 기억할 수 있다. 이 것을 값을 대입한다 라고 한다.

값의 대입은 준비한 변수 상자안에 특정한 값을 넣는다는 의미이다.

변수 값의 대입

변수 이름 = 식;

’=’이라는 기호는 수학식에서 사용되는 ~와 가 같다 라는 의미가 아닌, 값을 대입한다 라는 기능을 표현한다.


변수 값의 출력

변수 값을 출력하기 위해서는 변환 사양을 사용한다. 정수를 출력할 때 %d를 사용한다.

콤마 뒤에 ‘ ‘와 “ “라는 인용 부호를 붙이지 않고 변수 이름을 표기한다.


변수 값의 변경

변수 선언과 동시에 변수 값을 지정하는 방법도 있다. 이와 같은 처리를 변수 초기화라고 한다.

변수에 값을 다시 대입하면 이전 값을 지우고 새로운 변수 값으로 변경하는 처리가 가능하다.

변수 값을 다른 변수에 대입할 수 있다.


변수 선언 위치

변수 선언은 블록 안에서 다른 문보다 먼저 표기한다.


표준 입력

키보드로부터 입력된 값을 변수로 읽기 위해서 scanf를 사용한다.

scanf("변수사양", &변수);

scanf로 사용할 변수에는 반드시 &라는 기호를 사용해여한다.

키보드로 입력한 값을 받아서 변수에 저장한다.

문자를 입력할 때에는 getchar라는 지정을 사용한다.

변수 이름 = getchar();


표준 입력의 구조

일반적으로 표준입력은 컴퓨터의 키보드를 말한다.

scanf나 getchar를 사용해서 키보드로 입력하려면 printf를 사용할 때와 마찬가지로 코드의 앞부분에 stdio.h를 표기해야 한다.

Updated: