본문 바로가기
Programming/C++

C++ 언어 기초 (2) - 키워드,식별자,자료형,변수,연산자,형변환

by 롱일스 2020. 8. 26.
반응형

▣ 키워드와 식별자

 ●  키워드(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 지정을 일시 해제한다. 

  ▶ 형 변환 연산자 사용 형식

728x90
반응형