C & C++

변수와 상수

Man.날.코딩 2023. 1. 16. 18:46
반응형
SMALL

변수

C/C++에서도 그렇고 다른 프로그래밍 언어에서도 마찬가지로 우리는 프로그램내에서 변하는 수 즉, 변수를 선언해서 만들수 있습니다. 다음 예로 설명하겠습니다.

 

Example

int a = 0;          // a라는 정수형 변수를 선언하고 0으로 그 값을 초기화한다.
a = a + 10;       // a라는 정수형 변수에 원래있던 a의 값과 그 갑에 10을 더해서 다시 a변수에 대입한다.

위 예제와 같이 프로그램내에서 변경이 가능한 수를 우리는 '변수'라고 부릅니다. 변수의 선언은 컴퓨터의 메모리에 빈 공간을 할당받는 행위입니다. 위 예제에서 a는 정수형 변수입니다. C/C++에서 변수는 특정한 타입으로 지정할 수 있습니다. 그렇다면 C/C++에서는 어떤 타입의 변수가 있는지 보겠습니다.

 

타입 크기 표현 범위
char 1 byte -128 ~ 127
short 2 byte -32,768 ~ 32,768
int 4 byte -2,147,483,648 ~ 2,147,483,647
long 4 byte(어떤 시스템에서는 8byte) -2,147,483,648 ~ 2,147,483,647
long long 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
float 4 byte ±1.2 X 10 -38 ~ ±3.4~10 34
double 8 byte ±2.3 x 10 -308 ~ ±1.7 x 10 308 

char ~ long long 까지는 정수형 변수 타입이고 float와 double는 각각 실수형 변수의 타입입니다.

정수형 변수 앞에는 양의 정수만 표현하기 위해 unsigned 라는 키워드를 붙일수 있는데 unsigned가 붙은 정수형 변수는 양의 정수의 값을 갖을수 있습니다.

 

일반적으로 정수의 리터럴(그냥 수를 적은것)의 경우 그 타입은 int형이며, long이나 long long 변수에 해당하는 리터럴을 표현해야 하는데 다음과 같이 표현할 수 있습니다.

 

int a = 10;  // 일반적으로 정수형 리터럴은 int형으로 인식됩니다.

long b = 10L;  // long형의 리터럴은 뒤에 L을 붙여주어야 합니다.

long long c = 10LL; // long long형의 경우에도 LL을 붙여줍니다.

 

실수형 리터럴에도 마찬가지 규칙이 있는데 일반적인 실수형 리터럴은 double형으로 인식되며, float형의 실수인 경우 뒤에 F를 붙여주어 float형 실수인것을 구분합니다.

 

float p = 3.14F;

double f = 10.5;

 

변수의 선언은 말씀드린 바와 같이 메모리에 공간을 할당받는 일입니다.  아래와 같이 변수를 선언하게 되면 메모리는 다음그림과 같이 할당됩니다.

int a = 10;

char b = 1;

double f = 10.5;

short c = 5;

 

아래 그림에서 각각의 칸은 1byte를 나타냅니다.

                   
  5              
                   
      10      
                   
                   
                   
  1                
                   
10.5    

위 그림과 같이 변수를 선언하면 메모리에 그 타입에 해당하는 영역만큼의 공간을 할당받아 값을 저장합니다.

 

변수의 이름를 선언하는데는 규칙이 있습니다.

1. 변수의 이름에는 영문자, 숫자, _ 를 같이 쓸 수 있으며, 숫자부터 시작할 수는 없다. ex) _abc8(가능), 8th(불가능)
2. 변수의 이름에 공백문자가 올 수 없다, 즉 띄어쓰기는 불가능 하다.
3. 예약어(Reserved Word)의 사용은 불가능하다. ex) int, for, while, switch, case, do 등등
4. 대소문자를 구별한다. ex) Abc와 aBc는 다른 변수이다.

 

꼭 그렇지는 않지만, 관례적으로 변수의 이름을 붙일때는 용도가 명확하게 지어주는게 좋다. ex)_count, nTotal_Hp

 

 

상수

프로그램내에서 절대 변하지 않는 수를 상수라고 한다. 상수는 숫자 리터럴 그대로 사용해도 되나 보통은 const를 붙여서 상수임을 나타낸다. const가 붙은 변수, 즉 상수는 해당 프로그램내에서 절대 값을 변경할 수 없다.

const float PI = 3.14F;

const를 사용한 방법외에도 전통적인 방법으로 전처리문인 #define을 사용할 수도 있다.

#define PI 3.14F

이렇게 선언하면 프로그램내에서 PI라고 적힌 부분을 모두 3.14F로 대치해주고 컴파일에 들어간다.

반응형
LIST