Skip to Main Content

C언어 기초 가이드 STEP 1: 변수

코딩 학습 가이드는 소프트웨어학과 송오영교수님이 검수하였습니다.

변수 만들기

변수는 프로그래밍에서 핵심적인 개념으로, 컴퓨터 안에서 어떤 값을 저장하기 위한 메모리 공간입니다.
변수를 데이터를 담아두는 '박스'라고 생각해도 괜찮습니다.

 


C언어는 저장할 값의 종류에 따라 자료형이 달라집니다.
변수는 자료형 변수이름 형식으로 선언합니다. num이라는 이름의 정수형 변수를 선언해보겠습니다.

int num;    // num이라는 변수 선언

- int : 정수의 저장이 가능한 메모리 공간을 할당합니다.
- num : 메모리 공간의 이름을 num이라 합니다.


변수에 값을 저장할 때는 변수 = 값; 형식으로 사용합니다. 대입 연산자(=)를 사용하여 오른쪽의 것을 왼쪽에 대입합니다.

num = 10;    // 변수 num에 10 저장

초기화하지 않은 변수에는 쓰레기값(다른 프로그램이 사용하던 메모리)이 들어가기 때문에 반드시 원하는 값으로 초기화를 해줘야 합니다.


C언어에서는 변수를 선언과 동시에 초기화(선언된 변수에 처음 값을 저장) 하는 것이 가능합니다.
또한 둘 이상의 변수를 동시에 선언하는 것도 가능하며, 동시에 선언 및 초기화하는 것도 가능합니다.

int num = 10;    // num이라는 변수에 10 대입
int num1, num2;    // num1, num2라는 변수 선언
int num3 = 30, num4 = 40;    // num3이라는 변수에 30 대입, num4라는 변수에 40 대입

변수를 선언하고 값을 할당했으면 printf 함수로 변수의 값을 화면에 출력해보겠습니다.

1
2
3
4
5
6
7
8
#include <stdio.h>
 
int main(void)
{
    int num1=10, num2=20, num3=30;    // 정수형 변수 선언
    printf("%d %d %d\n", num1, num2, num3);    // 변수에 저장된 값 출력 
    return 0;
}

변수 num1, num2, num3에 저장된 10, 20, 30이 화면에 출력됩니다.
printf 함수 안의 %d는 10진수(decimal)를 출력할 때 사용하는 서식문자입니다. 서식문자 하나에 변수 하나가 대응됩니다.
여기서는 %d를 3개 사용했기 때문에 변수도 3개를 지정하였습니다.

C언어의 기본 자료형

C언어가 제공하는 기본 자료형의 종류와 특징은 다음과 같습니다. 자료형별 크기는 컴파일러마다 차이를 보일 수 있습니다.

자료형 크기 값의 표현범위
정수형 char 1바이트 -128 이상   +127 이하
short 2바이트 -32,768 이상   +32,767 이하
int 4바이트 -2,147,483,684 이상   +2,147,483,647 이하
long 4바이트/8바이트 -2,147,483,684 이상   +2,147,483,647 이하
long long 8바이트 -9,223,372,036,854,775,808 이상
+9,223,372,036,854,775,807이하
실수형 float 4바이트 이상  이하
double 8바이트 이상 이하
long double 8바이트 이상 double 이상의 표현 범위

정수 자료형
- 특별한 경우가 아니면 정수형은 int를 사용합니다. int형은 연산의 기본 단위로 컴퓨터에서 가장 빠르게 연산되기 때문입니다.
- long형은 큰 값을 저장할 때 사용합니다.
- char형은 작은 범위의 정수를 저장할 수 있지만, 주로 문자를 저장하는 용도로 쓰입니다.

실수 자료형
- 실수형은 유효 숫자가 많은 double형을 기본으로 사용합니다.

 정수 자료형의 이름 앞에 unsigned 선언을 추가하면, 0과 양의 정수만 표현할 수 있습니다.

변수이름 만드는 규칙

 영문자와 숫자, 언더바(_)로 이루어 집니다.
 중간에 공백이 들어갈 수 없습니다.
 첫 글자는 반드시 영문자 또는 언더바(_)이어야 합니다.
숫자로 시작할 수 없습니다.
 대소문자를 구분합니다. 따라서 index와 Index,
INDEX는 모두 다른 변수입니다.
 특수문자(+,-,*,/,$,@,&,% 등)는 사용할 수 없습니다.
 C언어의 키워드(if, for, while, int, return 등)는 사용할 수 없습니다.

상수

상수는 변수의 상대적 개념입니다. 변수는 값을 계속 바꿀 수 있지만, 상수는 변경이 불가능한 데이터를 뜻합니다.
C언어에서 리터럴(literal)은 값 그 자체를 뜻합니다. 그리고 상수는 변수처럼 리터럴이 저장된 공간입니다.

상수를 선언하는 방법은 변수를 선언하는 방법과 같으며 자료형 앞이나 뒤에 const만 붙여주면 됩니다. 상수는 반드시 선언과 동시에 값을 할당하여 초기화해주어야 하며 초기화를 하지 않으면 컴파일 에러가 발생합니다.

const 자료형 상수이름 = 값;
또는
자료형 const 상수이름 = 값;

const는 반드시 선언과 동시에 초기화해야 합니다.