프로그래밍/C++

[C++ 기초] 변수, 리터럴, 상수

로로아빠 2023. 1. 20. 14:28

안녕하세요 오늘은 예제를 통해 C++의 변수, 리터럴 및 상수에 대해 알아보겠습니다.

 

변수

프로그래밍에서 변수는 데이터를 저장하는 저장 영역을 뜻합니다. 저장 영역을 나타내려면 각 변수에 고유한 이름(식별자)을 지정해야 합니다.  예를들면 다음과 같습니다.

int age = 14;

여기서 age는 int 데이터 유형의 변수입니다. 소스코드에서는 age에 정수 값 14를 할당했습니다.

 

아래와 같이 선언된 변수에 데이터 값을 변경할 수 있습니다.

int age = 14;   // age is 14
age = 17;       // age is 17

다음은 변수이름을 생성할때 지킬 규칙을 정리하였습니다.

변수 이름 지정 규칙

1. 변수 이름에는 알파벳, 숫자 및 밑줄 _만 사용할 수 있습니다.
2. 변수 이름은 숫자로 시작할 수 없습니다.
3. 변수 이름은 소문자로 시작하는 것이 좋습니다. 예를 들어, Name보다는 name이 더 좋습니다.
4. 변수 이름은 키워드가 될 수 없습니다. 예를 들어, "int"는 정수를 나타내는 데 사용되는 키워드입니다.
5. 변수 이름은 밑줄로 시작할 수는 있지만 좋은 관행으로 여겨지지 않기에 자제하는 것이 좋습니다.

 

 

C++ 리터럴 상수

리터럴 상수는 변경되지 않는 상수 값을 나타내는 데 사용되는 데이터 이며 상수에는 다른 값을 할당할 수 없습니다.

1. Integers

Integer는 분수 또는 지수 부분이 없는 숫자 리터럴 상수입니다. C++에서는 세 가지 유형의 정수 리터럴 상수가 있습니다.

Decimal: 0, -9, 22 etc
Octal: 021, 077, 033 etc
Hexadecimal: 0x7f, 0x2a, 0x521 etc

2. Floating-point Literals

부동 소수점 리터럴 상수는 분수 형식 또는 지수 형식을 가진 숫자 리터럴 상수 입니다.

-2.0

0.0000234

-0.22E-5

설명: E-5 = 10-5 입니다.

3. Characters

문자 리터럴 상수는 단일 따옴표 안에 단일 문자를 포함하여 작성됩니다. 예를 들어 'a', 'm', 'F', '2', '}' 등이 있습니다.

4. Escape Sequences

코딩을 하다보면, C++ 프로그래밍에서 입력할 수 없거나 특수 문자를 사용해야 합니다.

(newline (enter), tab, question mark)

이러한 문자를 사용하기 위해 이스케이프 시퀀스가 사용됩니다.

Escape SequencesCharacters

\b Backspace
\f Form feed
\n Newline
\r Return
\t Horizontal tab
\v Vertical tab
\\ Backslash
\' Single quotation mark
\" Double quotation mark
\? Question mark
\0 Null Character

5. String Literals

문자열 리터럴은 큰따옴표로 둘러싸인 일련의 문자를 말합니다.

"good" string constant
"" null string constant
" " string constant of six white space
"x" string constant having a single character
"Earth is round\n" prints string with a newline

C++ Constants

C++에서는 값을 변경할 수 없는 변수를 만들기 위해 const 키워드를 사용합니다.

const int LIGHT_SPEED = 299792458;
LIGHT_SPEED = 2500 // Error! LIGHT_SPEED is a constant.

위 소스코드에서는 키워드 const를 사용하여 LIGHT_SPEED를 상수로 선언했습니다.

그러므로 두 번째 줄에 LIGHT_SPEED의 값을 변경하고자 소스를 작성하면 오류가 발생합니다.

 

#define 전처리기 지시어를 사용하여 상수를 만들 수도 있습니다. 이 부분은 C++ 매크로 튜토리얼에서 자세히 알아보겠습니다.

 

감사합니다.