변수는 프로그램에서 사용하는 데이터를 저장하기 위한 공간입니다. 프로그램을 작성하다 보면 상황에 맞게 데이터를 생성하거나 변경하는 경우가 많습니다. 예를 들어 성적관리 프로그램이라면, 학생의 이름, 학번, 성적 등을 저장할 공간이 필요하겠지요. 프로그램 실행중에 변하는 데이터를 저장하기 위해서 변수를 선언해야 합니다. 변수를 사용하기 위해서는 변수의 이름과 변수의 타입을 정해야 합니다. 예를 들어, 나이를 저장하기 위해서는 '나이'라는 변수명과 '숫자'라는 변수의 타입이 필요합니다.
int age = 27; // 나이 27세
C++에서 기본으로 제공하는 자료형은 크게 bool, char, int, float 등이 있습니다. (사실은 그외에도 많이 있지만 주요 사용하는 자료형만 소개하도록 하겠습니다.)
bool result = true;
char ch = 'A';
int number = 99;
float speed = 15.67f;
- bool은 참 또는 거짓을 표현하는 자료형입니다. 대입값은 true 또는 false입니다. 또는, 참 거짓을 분별 할 수 있는 수식을 사용할 수 있습니다. bool 타입은 조건문에서 특히 많이 사용합니다.
bool isMale = true;
bool hasHouse = false;
bool isEvenNumber = (number % 2 == 0); // number가 짝수면 true, 홀수면 false가 됩니다
bool isPositiveNumber = (number > 0); // number가 0보다 크면 true, 아니면 false가 됩니다
- char는 문자를 표현하는 자료형입니다. 대입값은 알파벳, 숫자, 특수 문자 등입니다. 단 1글자만 대입할 수 있습니다. 한 글자의 문자를 표현할 때는 작은 따옴표(' ')를 사용합니다.
char ch = 'A';
char plus = '+';
char input = getchar(); // 키보드로 부터 키 입력을 받아 input에 저장한다
- int는 정수형을 표현하는 자료형입니다. 대입값은 일반 정수를 대입할 수 있습니다. 정수의 범위는 -2147483648 (-2의 31승) 에서 2147483647 (2의 31승)까지 입니다. (자료형의 크기는 컴파일러와 운영체제에 따라 다르지만, 지금은 넘어가도록 하겠습니다.)
int wage = 15;
int wage_per_day = 15 * 8; // 계산식을 사용할 수 있습니다.
int wage_per_week = wage_per_day * 5; // 다른 변수를 사용하여 새로운 변수를 만들 수 있습니다.
- float은 실수형을 표현하는 자료형입니다. 대입값은 일반 실수를 표현할 수 있습니다. 일반적으로 표현할 수 있는 실수의 범위는 다 표현할 수 있다고 생각하면 됩니다. float 자료형은 숫자뒤에 f를 표기합니다.
float score = 95.0f / 100.0f; // 0.95가 score에 저장됩니다.
float salary = 4000000.0f;
float wage_per_day = salary / 30.0f; // 4000000 / 30 (=133,333.33333f)가 wage_per_day에 저장됩니다.
그외 자료형
- std::string은 문자열을 표현하는 자료형입니다. std::string은 STL (Standard Template Library) 에서 제공하는 자료형이지만, 사실상 기본자료형 처럼 사용해도 무방합니다. std::string을 사용할 수 없는 경우라면 char 배열 또는 char 포인터를 이용하여 문자열을 저장합니다. 배열이나 포인터는 추후에 설명하도록 하겠습니다. 문자열을 표기할 때는 char와 다르게 큰따옴표(" ")를 사용합니다.
std::string first_name = "Kil-dong"; // "길동"이라는 이름을 저장하는 문자열입니다.
std::string last_name = "Hong"; // "홍"이라는 이름을 저장하는 문자열입니다.
std::string input = last_name + first_name; // last_name과 first_name을 더해 "홍길동"이라는 문자열을 생성합니다.
변수의 이름을 지을때는 그 변수에 저장하려는 내용과 의미가 일치하도록 짓는 것이 좋습니다.
나이를 저장한다면 age, 이름이라면 name 등이 적절하겠습니다. 변수명만 읽어도 어떠한 데이터를 담고 있는지 예측이 가능 하다면 좋은 이름이라 할 수 있겠습니다.
int abc = 1234567; // 나쁜 변수명
int studentNumber = 1234567; // 좋은 변수명
변수명은 문자로 시작해야 하며 C++의 예약어나 키워드 등은 사용할 수 없습니다. 또한, 변수명은 대문자와 소문자를 구분합니다.
int for = 3; // for는 키워드이므로 사용할 수 없습니다
int 2023days = 365; // 변수명은 숫자로 시작할 수 없습니다
bool _isDigit = false; // 언더스코어(_)는 변수명으로 사용할 수 있습니다.
float percent# = 78.3f; // 변수명에 특수 기호 (!, #, %, ...)를 넣을 수 없습니다.
std::string day = "Sunday";
std::string Day = "Saturday"; // Day는 day와 다른 변수 입니다.
생각해볼 문제
변수명에 한글도 사용이 가능합니다. 하지만 권장하지는 않습니다. 코드에 한글을 사용하게 되면 소스코드 텍스트 포맷이 다른 환경에서 읽을때 깨짐현상이 발생할 수 있습니다. 또한, 다른 언어를 사용하는 개발자와 코드 공유가 쉽지 않습니다. 보통 프로젝트나 팀별로 가이드라인이 있기 때문에 그에 맞춰서 사용하면 문제가 없을듯 합니다. 하지만 한글이 허용된다 하더라도 개인적으로는 영어로 이름을 짓는 습관을 들이는 것이 좋다고 생각합니다. 여러분은 어떻게 생각하나요?
float 점수 = 90.6f;
std::cout << "성적 = " << 점수 << std::endl;
'C++' 카테고리의 다른 글
| 현업에서 사용하는 모던 C++ Ep2. 변수의 수명(Lifetime) (1) | 2024.01.08 |
|---|---|
| [강좌] 현업에서 사용하는 모던 C++ (1) | 2024.01.07 |