Core Programming/Modern C++ & System Design

C++ 기초: 데이터 타입 총정리 및 변수 선언법 (int, double, static 변수)

임베디드 친구 2024. 12. 17. 20:31
728x90
반응형

C++ 기초: 데이터 타입 종류와 변수 활용법 완벽 가이드

안녕하세요! Coding by Head입니다. 지난 포스팅에서 개발 환경 설정을 마쳤다면, 이제 본격적으로 C++ 프로그래밍의 가장 기본인 데이터 타입(Data Type)과 변수(Variable)에 대해 알아볼 차례입니다.

프로그래밍에서 데이터를 효율적으로 다루는 것은 메모리 최적화와 직결되므로, 각 타입의 특성을 정확히 이해하는 것이 중요합니다.

Generated by Gemini AI.


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) 선언과 초기화

변수는 데이터를 담는 메모리 공간의 '이름'입니다.

변수 선언 문법

C++
 
// 데이터타입 변수이름 = 초기값;
int score = 100;
double temperature = 36.5;

⚠️ 주의사항: 쓰레기 값(Garbage Value)

변수를 선언만 하고 초기화하지 않으면 메모리에 남아있던 이전 값(쓰레기 값)이 들어있을 수 있습니다. 버그 방지를 위해 int x = 0;처럼 항상 초기화하는 습관을 갖는 것이 좋습니다.


3. 변수의 유효 범위 (Scope)

변수가 어디서 선언되었느냐에 따라 접근 가능한 범위와 생명 주기가 달라집니다.

3.1 전역 변수 vs 지역 변수

  • 전역 변수(Global): 모든 함수 밖에서 선언되며, 프로그램 종료 시까지 유지됩니다.
  • 지역 변수(Local): { } 블록 내에서만 존재하며, 블록을 벗어나면 메모리에서 사라집니다.

3.2 정적 변수 (Static Variable)

함수가 종료되어도 값이 사라지지 않고 유지되는 특별한 변수입니다.

C++
 
#include <iostream>
using namespace std;

void checkVisit() {
    static int visitCount = 0; // 함수가 끝나도 소멸되지 않음
    visitCount++;
    cout << "방문 횟수: " << visitCount << endl;
}

int main() {
    checkVisit(); // 출력: 1
    checkVisit(); // 출력: 2
    return 0;
}

4. [실습] 간단한 입력 및 연산 예제

사용자로부터 두 수를 입력받아 평균을 구하는 코드를 통해 실습해 보겠습니다.

C++
 
#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)과 반복문에 대해 자세히 알아보겠습니다! 궁금한 점은 언제든 댓글로 남겨주세요.

반응형