본문 바로가기
Jaden's spectrum/📂 Programming Languages

[C++] 3. 변수

by JadenWe 2025. 3. 16.
반응형

변수 선언과 초기화

C++에서 변수를 선언하는 기본적인 방법은 다음과 같습니다.

#include <iostream>
using namespace std;

int main() {
    int a; // 변수 선언 (초기화되지 않음)
    a = 10; // 값 할당
    cout << "a의 값: " << a << endl;
    return 0;
}

위 코드에서 int a;는 변수 선언이며, a = 10;은 값을 할당하는 과정입니다.

선언과 동시에 초기화

변수를 선언하면서 동시에 값을 할당할 수도 있습니다.

#include <iostream>
using namespace std;

int main() {
    int b = 20; // 선언과 동시에 초기화
    cout << "b의 값: " << b << endl;
    return 0;
}

이 방법은 변수를 사용할 때 초기값을 보장할 수 있으므로 보다 안전한 방식입니다.


다양한 데이터 타입의 변수 선언

C++에서는 다양한 데이터 타입을 지원하며, 각 타입에 맞는 변수를 선언할 수 있습니다.

#include <iostream>
using namespace std;

int main() {
    int num = 100;         // 정수형 변수
    double pi = 3.14159;   // 실수형 변수
    char grade = 'A';      // 문자형 변수
    bool isPassed = true;  // 불리언 변수
    
    cout << "정수: " << num << endl;
    cout << "실수: " << pi << endl;
    cout << "문자: " << grade << endl;
    cout << "불리언: " << isPassed << endl;
    return 0;
}

각 데이터 타입은 메모리를 차지하는 크기가 다르며, 프로그램에서 적절한 데이터 타입을 선택하는 것이 중요합니다.


auto 키워드

C++11부터는 auto 키워드를 사용하여 변수의 타입을 자동으로 결정할 수 있습니다.

#include <iostream>
using namespace std;

int main() {
    auto x = 42;      // int로 해석됨
    auto y = 3.14;    // double로 해석됨
    auto z = "Hello"; // const char*로 해석됨
    
    cout << "x: " << x << ", y: " << y << ", z: " << z << endl;
    return 0;
}

auto를 사용하면 변수의 타입을 명확하게 지정하지 않아도 되므로 코드가 간결해집니다.


상수 변수 (constconstexpr)

C++에서는 const 키워드를 사용하여 변수를 상수로 만들 수 있으며, 컴파일 타임 상수를 만들 때는 constexpr을 사용합니다.

#include <iostream>
using namespace std;

int main() {
    const int MAX_VALUE = 100; // 변경할 수 없는 상수 변수
    constexpr double PI = 3.14159; // 컴파일 타임 상수
    
    cout << "최대값: " << MAX_VALUE << endl;
    cout << "원주율: " << PI << endl;
    return 0;
}

const 변수는 선언 후 값을 변경할 수 없으며, constexpr은 반드시 컴파일 타임에 값을 결정해야 합니다.


동적 할당 (newdelete)

변수를 동적으로 할당할 경우 new 연산자를 사용하고, 메모리를 해제할 때 delete를 사용합니다.

#include <iostream>
using namespace std;

int main() {
    int* ptr = new int(50); // 동적 메모리 할당
    cout << "동적으로 할당된 값: " << *ptr << endl;
    delete ptr; // 메모리 해제
    return 0;
}

메모리 누수를 방지하기 위해 동적으로 할당된 메모리는 반드시 delete를 사용하여 해제해야 합니다.

 

 

 

[C++] 2. namespace & cin

네임스페이스(namespace)네임스페이스(namespace)는 C++에서 변수나 함수 이름이 충돌하는 것을 방지하기 위해 사용됩니다. 대규모 프로그램을 개발할 때, 여러 라이브러리에서 같은 이름의 함수나 변

clarelee.tistory.com

 

 

반응형

'Jaden's spectrum > 📂 Programming Languages' 카테고리의 다른 글

[C++] 6. 배열 (+다중 배열)  (0) 2025.03.17
[C++] 5. 반복문 (for & while)  (0) 2025.03.16
[C++] 4. 조건문 (if & switch)  (0) 2025.03.16
[C++] 2. namespace & cin  (0) 2025.03.16
[C++] 1. iostream & cout  (0) 2025.03.16