728x90
C++에서 변수는 데이터를 저장하는 데 사용되는 이름이 붙은 메모리 위치입니다. 변수는 다양한 데이터 타입을 가질 수 있으며, 프로그램 실행 중에 값을 저장하고 변경할 수 있습니다. 변수에 대해 자세히 설명하겠습니다.
변수 선언 및 초기화
변수를 사용하려면 먼저 선언해야 합니다. 선언 시 변수의 데이터 타입과 이름을 지정합니다. 초기화를 통해 변수를 선언하면서 값을 설정할 수도 있습니다.
int myVariable; // 변수 선언
myVariable = 10; // 변수 초기화
int anotherVariable = 20; // 선언과 동시에 초기화
변수의 데이터 타입
변수는 다양한 데이터 타입을 가질 수 있습니다. 주요한 데이터 타입은 다음과 같습니다:
- 기본 데이터 타입
- int: 정수형 (예: int a = 5;)
- float: 부동 소수점형 (예: float b = 3.14;)
- double: 배정밀도 부동 소수점형 (예: double c = 6.28;)
- char: 문자형 (예: char d = 'A';)
- bool: 불리언형 (예: bool e = true;)
- const 키워드를 사용하여 상수를 선언할 수 있습니다. 상수는 초기화 후 값을 변경할 수 없습니다.상수 (const)
-
const int MAX = 100;
- 열거형은 관련된 상수들을 그룹화하는 데 사용됩니다.열거형 (enum)
-
enum Color { RED, GREEN, BLUE }; Color myColor = RED;
변수의 범위와 수명
변수의 범위는 변수가 유효한 코드 블록을 의미하며, 수명은 변수가 메모리에 존재하는 기간을 의미합니다. 변수는 선언된 위치에 따라 다음과 같이 분류됩니다:
-
- 함수 또는 블록 내에서 선언되며, 해당 블록이 끝나면 소멸합니다.지역 변수 (Local Variable)
void myFunction() { int localVar = 10; // 지역 변수 } // localVar는 여기서 소멸
- 함수 외부에서 선언되며, 프로그램 전체에서 유효합니다.전역 변수 (Global Variable)
-
int globalVar = 20; // 전역 변수 void myFunction() { globalVar = 30; }
- 함수 내에서 선언되지만, 정적 변수는 프로그램이 종료될 때까지 유지됩니다.정적 변수 (Static Variable)
-
void myFunction() { static int staticVar = 10; // 정적 변수 staticVar++; }
-
- 다른 파일에서 선언된 변수를 참조할 때 사용됩니다.외부 변수 (Extern Variable)
extern int externalVar; // 외부 변수 참조
변수의 사용 예시
#include <iostream>
int globalVar = 100; // 전역 변수
void exampleFunction() {
static int staticVar = 0; // 정적 변수
int localVar = 10; // 지역 변수
staticVar++;
localVar++;
std::cout << "Static Variable: " << staticVar << std::endl;
std::cout << "Local Variable: " << localVar << std::endl;
}
int main() {
exampleFunction();
exampleFunction();
exampleFunction();
std::cout << "Global Variable: " << globalVar << std::endl;
return 0;
}
이 예제는 정적 변수와 지역 변수가 어떻게 다르게 동작하는지 보여줍니다. 정적 변수 staticVar는 함수가 호출될 때마다 값이 유지되지만, 지역 변수 localVar는 함수가 호출될 때마다 다시 초기화됩니다.
728x90
'반도체 > C++' 카테고리의 다른 글
24. C++에서 GET과 SET 메서드 (1) | 2024.08.14 |
---|---|
23. 반환값 (1) | 2024.08.14 |
21. && 논리 AND 연산자 (Logical AND Operator): (1) | 2024.08.14 |
C#과 C++의 객체 지향 개념 차이 (1) | 2024.08.01 |
20.C++ 템플릿과 함수 오버로딩의 차이 (2) | 2024.07.31 |