변수의 사용 영역
int a; // 비지역변수 - 선언된 이후 프로그램 전체 영역에서 사용 가능
static int b{10}; // 비지역변수 - 선언된 이후 소속 파일의 전체 영역에서 사용 가능
int f() {
int c{20}, d{30}; // 비지역변수 선언된 이후 소속 블록의 전체 영역에서 사용 가능
{
int d{40};
int e{50}; // 지역변수 - 선언된 이후 소속 블록의 전체 영역에서 사용 가능
}
}
const 한정어
- 변수의 값을 수정할 수 없게 함
- 초기화를 통해서만 값을 정할 수 있음
- 컴파일 시에 값을 알 수 없으면 오류 발생함
constexpr 한정어
- 값을 컴파일할 때 평가한다
- 실행 중 값을 평가하는 것에 비해 효율적으로 동작할 수 있게 함
- 모든 인수가 constexpr인 경우 컴파일 할 때 값을 구할 수 있다.
constexpr int fac(int n){
return n > 1 ? n * fac(n-1) : 1;
}
void f(int x) {
constexpr int a = fac(4); // 컴파일할 때 계산
int b = fac(x); // 실행 중 계산
....
}
변수의 유효기간
- 변수가 언제 만들어져 언제 없어지는가?
- 자동변수 : 함수가 시작/종료될 때 생성/소멸된다.
- 지역변수
- 정적변수: 프로그램이 시작/종료될 때 생성/소멸된다.
- 전역변수, 정적 지역변수(static)
- 자동변수 : 함수가 시작/종료될 때 생성/소멸된다.
자료형의 변환
묵시적 형 변환
- 두 값 사이의 연산에서 우선순위가 낮은 자료형의 값이 순위가 높은 자료형의 값과 같은 형으로 변환된다.
- 대입 연산자(=)는 값을 저장할 변수의 자료형으로 묵시적 형변환을 한다.
- 오차나 오버플로 주의
- 형 변환 연산자
- static_cast : 연관된 자료형 간의 형변환을 처리하며, 변환 처리는 컴파일 단계에서 정해진다.
- dynamic_cast : 기초 클래스와 파생 클래스 간의 포인터 또는 참조 형 변환이 프로그램 실행 중에 일어나도록 한다.
- reinterpret_cast : 관련이 없는 자료형 사이의 변환을 처리하는 연산자.
- const_cast : const 지정을 일시 해제한다.
static_cast<int>(n/10.0)
//형변환연산자 <변환하고자_하는_목표_자료형>(수식)
반응형
'프로그래밍 > C ++' 카테고리의 다른 글
[C++] 객체 (object) (0) | 2024.12.04 |
---|---|
[C++] 함수 (0) | 2024.12.03 |
[c++] C++ 변수의 특징 (0) | 2024.07.08 |
[C++] iosteam 표준 입출력 (0) | 2024.07.08 |
[c++] std namespace / header file (0) | 2024.07.04 |