[C++ 스터디] 리터럴, 변수, 그리고 연산자

2022. 7. 3. 20:0003. Resources/C, C++

728x90
반응형

리터럴

  • 코드에 표시한 숫자나 스트링 같은 값
  • 다양한 표준 리터럴을 제공
    • 십진수 리터럴: 123
    • 8진수 리터럴: 0173
    • 16진수 리터럴: 0x7B
    • 이진수 리터럴: 0b1111011
    • 부동소수점 값: 3.14f
    • 배정도 부동소수점 값: 3.14
    • 단일 문자: ‘a’
    • ‘0’으로 끝나는 문자 배열: “character array”

변수

  • 선언 방식

      int uninitializedIntl; -> 초기화하지 않은 변수 선언; 쓰레기값이 들어있다.
      int initializedInt = 7; -> 변수 초기화하면서 선언
  • 타입 종류

    • (signed) int
      • 부호가 있는 정수(양수와 음수)를 표현하며, 값의 범위는 컴파일러마다 다름 (대부분 4바이트다.)
    • (signed) short (int)
      • 작은 범위의 정수 (대부분 2바이트로 표현)
    • (signed) long (int)
      • 큰 범위의 정수 (대부분 4바이트로 표현)
    • (signed) long long (int)
      • 아주 큰 범위의 정수를 표현. 구체적인 범위는 컴파일러마다 다르나 최소한 long 타입보다는 큼 (주로 8바이트를 사용)
    • unsigned (int) ; unsigned short (int) ; unsigned long (int) ; unsigned long long (int)
      • 앞에 나온 정수 타입의 범위를 ≥0 으로 제한
    • float
      • 단정도 (single) 부동소수점수(floating-point number)
    • double
      • 배정도 (double) 부동소수점수, 정밀도가 최소한 float보다 큼
    • long double
      • 롱배정도 (long double) 부동소수점수, 정밀도가 최소한 double보다 큼
    • char
      • 단일 문자
    • char16_t
      • 16비트 단일 문자
    • char32_t
      • 32비트 단일 문자
    • wchar_t
      • 단일 확장 (single wide) 문자, 구체적인 크기는 컴파일러마다 다름
    • bool
      • 부울 타입. true나 false 중 하나를 값으로 가진다.
    • std::byte (C++17에서 추가)
      • 한 바이트를 표현. C++17 이전에는 한 바이트를 char나 unsigned char로 표현. 이러한 표현은 문자를 다루는 느낌.
      • std::byte로 표현하면 메모리의 한 바이트라는 의미를 명확히 드러낼 수 있음
      • #include <cstddef>를 추가해야함
  • 변수 타입 변경

    • 캐스팅 (동적 형변환, 타입 캐스팅)

      float myFloat = 3.14f;
      int i1 = (int)myFloat; -> C++에서는 피해야하는 방식
      int i2 = int(myfloat); -> 거의 사용하지 않는 방식
      int i3 = static_cast<int>(myFloat); -> 이렇게 표현하는 것이 가장 바람직

연산자

  • =
    • 오른쪽의 값을 왼쪽의 표현식에 대입하는 이항 연산자
  • !
    • 표현식의 참/거짓 (또는 0이 아닌 값과 0)을 반전시키는(보수를 구하는) 단항 연산자
  • +, -, *, /
    • 덧셈, 뺄셈, 곱셈, 나눗셈을 나타내는 이항 연산자
  • %
    • 나눗셈의 나머지를 계산하는 이항 연산자, 모드(mod), 모듈로(modulo) 또는 나머지 연산자라 부름
  • ++, --
    • 표현식의 값에 1을 더하는 단항 연산자.
    • 이 연산자가 표현식 뒤에 나오면(x++, x-—) 그 표현식의 결과 자체는 바뀌지 않고 다음 문장부터 1이 더해진/빼진 값이 적용(사후 증가/감소, 후행 증가/감소, post-increment/decrement)
    • 이 연산자가 표현식 앞에 나오면(++x, --x) 표현식의 결과에 곧바로 1을 더한/뺀 값이 반영(사전 증가/감소, 선행 증가/감소, pre-increment/decrement)
  • +=, -=, *=, /=, %=
    • i = i +, -, *, /, % j;의 축약 표현
  • &, &=
    • 양쪽에 나온 표현식끼리 비트 단위 AND 연산 수행
  • |, |=
    • 양쪽에 나온 표현식끼리 비트 단위 OR 연산 수행
  • <<, >>, <<=, >>=
    • 왼쪽에 나온 표현식의 비트값을 오른쪽에 나온 수만큼 왼쪽(<<) 또는 오른쪽(>>)으로 시프트한다.
  • ^, ^=
    • 양쪽 표현식에 대해 비트 단위 XOR(exclusive or, 배타적 논리합) 연산 수행
반응형