▣ 키워드와 식별자
● 키워드(keyword)란?
▷ C++ 언어에서 미리 용도를 정해 놓은 단어를 가리킨다.
▶ 반드시 정해진 용도로만 사용해야 한다.
▷ 키워드의 예시
#include <iostream>
using namespace std;
int main()
{
cout << "키워드가 뭔지 찾아봐" << endl;
return 0;
}
위의 코드에서 using, namespace, int, return 이 키워드에 해당된다.
● 식별자(identifier)란?
▷ 여러 가지 대상을 구분하기 위해 만든 이름으로 변수나 함수, 클래스 등의 이름을 가리킨다.
▶ 식별자를 만드는 규칙은 다음과 같다.
- 첫 자는 비숫자 문자를 사용한다.
- 이후의 문자는 비숫자 문자와 숫자를 사용한다.
- 길이 제한은 없다.
- 특수문자는 포함할 수 없다.
- 키워드는 식별자로 사용할 수 없다.
▷ 식별자의 예: abc, myname, myName, MyName, a3, VALUE,
짱구(--> C++11이후 다국어 문자 포함 가능해졌다.)
▶ 사용할 수 없는 식별자의 예: 4days, my name, my#name, int, min:value
▣ 자료형
● C++의 자료형?
▷ 기본 자료형
1) 정수 자료형: char, int, short, long bool, ...
2) 실수 자료형: float, double, long double
▶ 복잡 자료형
1) 배열, 구조체(struct), 클래스(class), 열거형(enum), 공용체(union)
2) 포인터, 참조
● 정수 자료형?
▷ 고정소수점(fixed-point) 방식의 숫자 표현 --> 고정소수점 방식은 값의 범위가 제한되어 있어서 오버플로(overflow)가 발생하지 않게 주의해야 한다.
1) 문자를 표현하는 자료형: char
2) 정수를 표현하는 자료형: int, short, long, long long
3) 참/거짓을 표현하는 자료형: bool - true(참) 또는 false(거짓)
● 실수 자료형?
▷ 부동소수점(floating-point) 방식의 숫자 표현
▶ float (4 byte)
1) 부호 1비트, 지수부 8비트, 가수부 23비트로 구성된다.
2) 1.17549 E-38 ~ 3.40282 E+38 범위의 값을 표현한다.
▷ double (8 byte)
1) 부호 1비트, 지수부 11비트, 가수부 52비트로 구성된다.
2) 2.22507 E-308 ~ 1.79769 E+308 범위의 값을 표현한다.
▣ 변수
● 변수란?
▷ 프로그램이 실행되는 동안 기억하고 있어야 하는 값들을 저장하는 메모리 영역이다.
▶모든 변수는 사용하기 전에 미리 선언해야 하고 이름이 지정되어야 한다.
● 변수의 초기화
▷ 형식1. int total = 0;
▶ 형식2. int total(0);
▷ 형식3. int total = {0};
● 자료형 추론
▷ 변수를 초기화할 때 초기화하는 값의 자료형으로 변수의 자료형을 추론한다.
auto i(10); 은 int i(10);과 동일하다.
● const와 constexpr
▶ const 한정어
1) 변수의 값을 수정할 수 없게 한다.
2) 초기화를 통해서만 값을 정할 수 있다.
▷ const 예시
const double PI {3.14159}; //원주율 정의
▶ constexpr 한정어
1) 그 값을 컴파일할 때 평가한다는 의미이다.
2) 실행 중 값을 평가하는 것에 비해 효율적으로 동작할 수 있게 한다.
▷ 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 함수
모든 인수가 constexpr인 경우에 컴파일할 때 값을 구할 수 있게 한다.
constexpr int fac(int n) {
return n > 1 ? n*f(n-1) : 1;
}
void f(int x){
constexpr int a = fac(4); //컴파일할 때 계산
int b = fac(x); //실행 중 계산
}
● 변수와 상수 사용의 예 - CircleArea.cpp
원의 면적을 구하는 코드이다. 원주율을 상수로 설정하고 radius, area를 변수로 설정했다.
#include <iostream>
using namespace std;
int main()
{
const double PI {3.14159};
double radius;
cout << "원의 반경을 입력하세요: ";
cin >> radius;
double area = radius * radius * PI;
cout << "원의 면적 = " << area << endl;
return 0;
}
▣ 연산자와 자료형의 반환
● 조건연산자
▷ 유일한 3항 연산자이다.
▶ 조건 ? 값1 : 값2
▷ 조건이 true이면 수식의 값은 값1, false이면 값2
▶ 예시
a=10, b=20, c=30일 때
수식 | 수식의 값 |
a > 0 ? b : c | 20 |
● 묵시적 형 변환
▷ 묵시적 형 변환의 예
● 명시적 형 변환
▷ 형 변환 연산자
- static_cast : 실행 중에 형 검사를 하지 않으며, 컴파일할 때 수식에 지정된 그대로 변환한다.
- dynamic_cast : 기초 클래스와 파생 클래스 간의 포인터 또는 참조 형 변환이 프로그램 실행 중에 일어나도록 지시한다.
- reinterpret_cast : 포인터를 다른 자료형의 포인터나 정수 자료형으로, 또는 그 역으로 변환한다.
- const_cast : const 지정을 일시 해제한다.
▶ 형 변환 연산자 사용 형식
'Programming > C++' 카테고리의 다른 글
C++ 언어 기초 (6) - 클래스와 객체 (0) | 2020.08.27 |
---|---|
C++ 언어 기초 (5) - 함수 (0) | 2020.08.26 |
C++ 언어 기초 (4) - 포인터, 동적 메모리 할당, 참조 (0) | 2020.08.26 |
C++ 언어 기초 (3) - 구조체와 클래스 (0) | 2020.08.26 |
C++ 언어 기초 (1) - 개념, 빌드(build), 명칭공간(namespace) (0) | 2020.08.26 |