앞서 C언어에 관한 기본적인 것을 정리해 보았습니다.
두번째 시간으로 변수, 자료형, 상수등에 관해서 알아보겠습니다.
프로그래밍에 있어서 변수라는 건 숫자, 문자와 같은 값들을 저장하는 공간을 의미합니다.
RPG 게임을 예로 들면 실시간으로 변화하는 캐릭터의 레벨, 체력, 공격력, 방어력 같은 수치들을 제대로 저장하고 있지 않다면 문제가 생길 수 있습니다. 이러한 일들이 생기지 않기 위해서 프로그램을 구성하고 있는 값들을 변수에 저장합니다.
자료형
을 정해주어야 합니다.변수명
(이름)이 필요합니다. 적절한 이름(level, hp, damage, defense)을 정해 선언합니다. =
을 이용해서 적절한 값을 대입해줍니다.#include <stdio.h>
int main()
{
int level;
int hp;
int damage;
int defense;
level = 1;
hp = 50;
damage = 5;
defense = 2;
return 0;
}
#include <stdio.h>
int main()
{
int level = 1;
int hp = 50;
int damage = 5;
int defense = 2;
defense = 5; // 대입을 통해 변수의 값을 바꿀 수 있다
return 0;
}
자료형(Data Type)이란 변수의 종류를 의미합니다.
변수에 값을 담기 이전에,정수
,실수
,문자
,문자열
등 어떤 값을 가질 것인지 미리 정해줘야 합니다.
char
: 문자를 표시
short
, int
, long
, long long
: 숫자를 표시, 종류에 따라 좀 더 크거나 작은 숫자를 표시
정수형의 종류 : char
(1), short
(2), int
(4), long
(4), long long(8)
실수형의 종류 : float
(4), double
(8), long double
(8+)
괄호는 크기(바이트)를 나타낸 것 입니다.
실수형의 경우에는 크기별로 더 큰 숫자, 많은 소수점을 나타낼 수 있습니다.
부호가 있는 변수 signed
: 기본(default) 형식으로 음수, 양수 둘 다 표현 가능
부호가 없는 변수 unsigned
: 음수를 표현할 수 없고, 양수 값의 표현범위가 2배
정도 늘어남
자료형의 크기를 byte로 표현합니다. byte 이전에 bit의 개념에 대해 알아야 합니다.
비트는 컴퓨터가 처리할 수 있는 데이터의 최소 단위로, 하나의 bit는 0 혹은 1 의 값을 가지고 있습니다.
하나의 bit로는 표현할 수 있는 영역이 0 과 1 밖에 없으므로 값을 표현하기 위해 bit 8개
가 모여 만들어진 것이 byte
입니다.
bit 8개
가 모이면 이진수를 이용하여 값을 2의 7승
인 128개의 양수
(0 ~ 127)와 128개의 음수
(-1 ~ -128)를 만들 수 있습니다.
bit 16개
가 모여 2byte
가 되면 이진수를 이용하여
값을 양수는 2의 15승 -1
(32,767개), 음수 -32,768 까지 표현합니다.
-1을 하는 이유는 0을 포함하기 때문입니다.
printf
를 이용해서 변수를 출력하거나 scanf
로 입력을 받을 때 형식 지정자를 이용해야 합니다.
%d
: int - 부호 있는 10진 정수
%u
: unsigned int - 부호 없는 10진 정수
%f
: float, double - 부호 있는 10진 실수
%c
: char - 단일 문자 및 부호 있는 10진 정수
%hhu
: unsigned char - 부호 없는 10진 정수
%s
: char[] char배열 - 문자열
%lf
: double
자료형은 scanf
로 입력을 받을때 %lf
로 받아야 합니다.
변수는 값을 바꿀 수 있지만 상수는
값을 바꿀 수 없는 것
을 말합니다.
상수를 선언할 때는 자료형 앞에const
만 붙이면 됩니다.
상수는 처음 정의할 때 무조건 값을 입력해야 합니다.
#include <stdio.h>
int main()
{
const double PI = 3.1415;
PI = 5;
return 0;
}
위의 코드를 자세히보면 상수의 정의와 같이 처음에 정의를 할 때 입력한 값이 있습니다.
하지만 이후에 PI = 5
를 선언해서 PI의 값을 바꾸려고 했습니다.
해당 파일을 컴파일하게되면 error: assignment of read-only variable
라는
에러가 떠서 읽을 수만 있다고 알려줍니다.
상수를 사용하는 이유는 바로 값의 안정성
때문입니다.
절대 바꾸지 않을 값을 선언해 놓으면 코드가 실행되다가 변경 시키려고 하더라도
컴파일 에러를 내기 때문에 실수를 방지할 수 있습니다.
바꾸지 않을 값에 대해서는 const
를 사용하는 습관을 들여야 합니다.