C++ 기초: 데이터 타입 종류와 변수 활용법 완벽 가이드
안녕하세요! Coding by Head입니다. 지난 포스팅에서 개발 환경 설정을 마쳤다면, 이제 본격적으로 C++ 프로그래밍의 가장 기본인 데이터 타입(Data Type)과 변수(Variable)에 대해 알아볼 차례입니다.
프로그래밍에서 데이터를 효율적으로 다루는 것은 메모리 최적화와 직결되므로, 각 타입의 특성을 정확히 이해하는 것이 중요합니다.

1. C++ 데이터 타입(Data Types) 이해하기
C++에서 데이터 타입은 변수에 저장할 수 있는 값의 종류와 메모리 점유 크기를 결정합니다. 특히 임베디드 시스템이나 고성능 앱 개발 시, 적절한 타입을 선택하는 것이 메모리 절약의 핵심입니다.
1.1 기본 데이터 타입 (Fundamental Types)
| 데이터 타입 | 크기 (Typical) | 설명 | 예시 |
| int | 4 바이트 | 정수 저장 (음수 포함) | 10, -5 |
| float | 4 바이트 | 단정밀도 실수 (소수점 7자리) | 3.14f |
| double | 8 바이트 | 배정밀도 실수 (소수점 15자리) | 3.14159 |
| char | 1 바이트 | 단일 문자 저장 (ASCII) | 'A', 'z' |
| bool | 1 바이트 | 논리값 저장 | true, false |
1.2 확장 및 특수 데이터 타입
- unsigned int: 음수 없이 0과 양수만 저장하여 표현 범위를 두 배로 늘립니다. (하드웨어 제어 시 필수)
- long long: 매우 큰 정수(8바이트 이상)를 다룰 때 사용합니다.
- void: '값이 없음'을 의미하며, 주로 함수 반환 타입으로 쓰입니다.
2. 변수(Variables) 선언과 초기화
변수는 데이터를 담는 메모리 공간의 '이름'입니다.
변수 선언 문법
// 데이터타입 변수이름 = 초기값;
int score = 100;
double temperature = 36.5;
⚠️ 주의사항: 쓰레기 값(Garbage Value)
변수를 선언만 하고 초기화하지 않으면 메모리에 남아있던 이전 값(쓰레기 값)이 들어있을 수 있습니다. 버그 방지를 위해 int x = 0;처럼 항상 초기화하는 습관을 갖는 것이 좋습니다.
3. 변수의 유효 범위 (Scope)
변수가 어디서 선언되었느냐에 따라 접근 가능한 범위와 생명 주기가 달라집니다.
3.1 전역 변수 vs 지역 변수
- 전역 변수(Global): 모든 함수 밖에서 선언되며, 프로그램 종료 시까지 유지됩니다.
- 지역 변수(Local): { } 블록 내에서만 존재하며, 블록을 벗어나면 메모리에서 사라집니다.
3.2 정적 변수 (Static Variable)
함수가 종료되어도 값이 사라지지 않고 유지되는 특별한 변수입니다.
#include <iostream>
using namespace std;
void checkVisit() {
static int visitCount = 0; // 함수가 끝나도 소멸되지 않음
visitCount++;
cout << "방문 횟수: " << visitCount << endl;
}
int main() {
checkVisit(); // 출력: 1
checkVisit(); // 출력: 2
return 0;
}
4. [실습] 간단한 입력 및 연산 예제
사용자로부터 두 수를 입력받아 평균을 구하는 코드를 통해 실습해 보겠습니다.
#include <iostream>
#include <iomanip> // 출력 정밀도 설정을 위한 헤더
using namespace std;
int main() {
int num1, num2;
cout << "두 정수를 입력하세요: ";
cin >> num1 >> num2;
// 정수끼리의 계산 결과가 실수일 수 있으므로 double 사용
double average = (num1 + num2) / 2.0;
cout << "합계: " << (num1 + num2) << endl;
cout << "평균: " << average << endl;
return 0;
}
결론
C++에서 데이터 타입을 정확히 선택하는 것은 프로그램의 성능과 안정성을 결정짓는 첫 단추입니다. 오늘 배운 기본 타입과 변수 스코프를 바탕으로 더 복잡한 로직을 구성할 수 있습니다.
다음 포스팅에서는 프로그램의 흐름을 제어하는 조건문(if, switch)과 반복문에 대해 자세히 알아보겠습니다! 궁금한 점은 언제든 댓글로 남겨주세요.
'Core Programming > Modern C++ & System Design' 카테고리의 다른 글
| C++ 함수 완벽 가이드: 선언과 정의부터 매개변수 전달 방식(Call by Reference)까지 (0) | 2024.12.18 |
|---|---|
| C++ 반복문 완벽 가이드: for, while, do-while 차이점과 활용법 (0) | 2024.12.18 |
| C++ 조건문 완벽 가이드: if, else if, switch문 사용법 및 성능 비교 (0) | 2024.12.17 |
| C++ 입출력 완벽 가이드: cin, cout부터 파일 입출력 및 소수점 제어까지 (0) | 2024.12.17 |
| C++ 시작하기: Windows & Linux 개발 환경 설정부터 Hello World까지 완벽 가이드 (0) | 2024.12.17 |