식별자
프로그램을 만들 때 여러 가지 대상을 구분하기 위해 이름을 만들 필요가 있다. 이러한 이름을 식별자(identifier)라고 한다. 변수나 함수, 클래스 등의 이름이 식별자에 해당한다.
기본 자료형
유형 | 자료형 | 기억공간 (byte) |
정수형 | char | 1 |
unsigned char | 1 | |
short | 2 | |
unsigned short | 2 | |
int | 4 | |
unsigned int | 4 | |
long | 4 | |
unsigned long | 4 | |
long long | 8 | |
unsigned long long | 8 | |
wchar_t | 2/4 | |
bool | 1 | |
실수형 | float | 4 |
double | 8 | |
long double | 8 |
정수형 자료형 이름 앞에 unsigned라는 키워드를 사용하면 음수를 제외한 정수를 표현할 수 있게 된다.
양·음을 모두 표현할 수 있는 부호가 있는 정수형 자료형은 signed라는 키워드가 생략된 것이다.
상수의 표현
기본 자료형의 값을 직접 표현한 것을 리터럴(literal)이라고 한다. 리터럴은 그 값을 프로그램에서 바꿀 수 없으므로 상수(constant)에 해당된다.
변수
변수(variable)는 프로그램이 실행되는 동안 기억하고 있어야 하는 값들을 저장하는 메모리 영역이다.
변수 초기화 문장의 예
int a = 10;
int b(20);
int c{30};
int d = 1.5; //d의 값이 1로 초기화됨
int e(1.5}; //오류 - 축소 변환이 필요함(C++11)
자료형 추론
자료형 추론은 auto라는 키워드를 사용한다
auto i{10}; //int i{10};과 동일함
const 한정어
변수에 값이 항상 고정된 값을 갖게 하려면 변수를 선언할 때 const라는 키워드를 사용한다.
const double PI {3.14159}; //원주율 정의
이와 같이 자료형에 대해 특성을 부여하는 키워드를 자료형 한정어(type qualifier)라고 부른다.
constexpr 한정어
constexpr은 그 값을 컴파일할 때 평가한다는 의미이고, 이것은 실행 중 값을 평가하는 것에 비해 효율적으로 동작할 수 있게 한다.
int a;
std::cin >> a;
const int b = 20;
const int C1 = a; //cin을 통해 입력된 a의 값으로 초기화
constexpr int C2 = a + 10; //오류: 컴파일 시에 a의 값을 알 수 없음
constexpr int C3 = b + 100; //b+100을 컴파일 시에 계산할 수 있음
constexpr int C4 = C1 * 2; //오류: 컴파일 시에 C1의 값을 알 수 없음
함수도 constexpr로 선언할 수 있다.
연산자
산술 연산자
사칙연산자 : +, -, *, / 연산
나머지 연산: % 연산
증, 감 연산 : ++, -- 연산
논리 연산자
논리합(||), 논리곱(&&), 부정(!) 연산
관계 연산자
크다(>), 작다(<), 크거나 같다(>=), 작거나 같다(<=), 같다(==), 같지 않다(!=)
대입 연산자(=)
조건 연산자( ? : )
기타 연산자
연산자 | 사용 예 | 의미 |
& | int *p = &a; | &a는 a의 주소를 구한다. |
* | a = *p; | *p는 포인터 p가 가리키는 곳을 나타낸다. |
new | int * p = new int; | 저장공간을 동적 할당한다. |
delete | delete p; | 포인터 p가 가리키는 동적 할당 메모리를 반환한다. |
-> | pObj->a | 구조체나 객체 포인터를 이용하여 멤버를 선택한다. |
:: | ::a | 전역 명칭 |
명시적 형 변환
형 변환 연산자
- static_cast : 실행 중 형 검사를 하지 않으며, 컴파일 할 때 지정된 자료형으로 변환을 한다.
- dynamic_cast : 기초 클래스와 파생 클래스 간의 포인터 또는 참조의 형 변환이 프로그램이 실행되는 동안 일어나도록 지시하는 연산자이다.
- reinterpret_cast : 주어진 값의 내용과는 관계없이 bit 수준에서 형 변환을 한다. static_cast를 통해 할 수 없는 변환도 호영할 수 있도록 하며, 이러한 변환이 불가피한 특수한 상황에서 활용한다.
- const_cast : const로 선언된 객체의 const 한정어를 해제한다.
형변환_연산자<자료형>(수식)
출처 : 전중남·이병래. 「C++프로그래밍」. 한국방송통신대학교출판문화원. 2020
'프로그래밍언어 > C++' 카테고리의 다른 글
[C++] 클래스와 객체(2) (0) | 2023.09.05 |
---|---|
[C++] 클래스와 객체(1) (0) | 2023.09.04 |
[C++] 함수 (0) | 2023.08.30 |
[C++] C++ 언어의 기초 (2) - 흐름제어, 구초체와 클래스, 포인터 (0) | 2023.08.23 |
[C++] C++ 언어의 개요 (0) | 2023.08.23 |