산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C++ 상수와 리터럴 완전 정복: 타입, 문법, 모범 사례

상수(constants)는 프로그램이 변경할 수 없는 고정값을 말하며, 이를 리터럴(literals)이라고 부릅니다.

상수는 기본 데이터 타입 중 어느 것이든 될 수 있으며, 정수 리터럴, 부동소수점 리터럴, 문자, 문자열, 불리언 값으로 나눌 수 있습니다.

상수는 값이 정의 후 수정될 수 없다는 점을 제외하면 일반 변수처럼 취급됩니다.

정수 리터럴

정수 리터럴은 10진수, 8진수, 16진수 상수가 될 수 있습니다. 접두사가 밑(radix)을 지정합니다: 16진수는 0x 또는 0X, 8진수는 0, 10진수는 접두사 없음.

정수 리터럴에는 U(unsigned)와 L(long)의 조합인 접미사가 붙을 수 있습니다. 접미사는 대소문자 구분 없이 어떤 순서로든 올 수 있습니다.

정수 리터럴 예시:

212         // 합법적
215u        // 합법적
0xFeeL      // 합법적
078         // 불법: 8은 8진수 숫자가 아님
032UU       // 불법: 접미사 중복 불가

다양한 타입의 정수 리터럴 추가 예시:

85         // 10진수
0213       // 8진수
0x4b       // 16진수
30         // int
30u        // unsigned int
30l        // long
30ul       // unsigned long

부동소수점 리터럴

부동소수점 리터럴은 정수 부분, 소수점, 소수 부분, 지수 부분으로 구성됩니다. 10진수 형태 또는 지수 형태로 표현할 수 있습니다.

10진수 형태 사용 시 소수점, 지수, 또는 둘 다를 포함해야 하며, 지수 형태 사용 시 정수 부분, 소수 부분, 또는 둘 다를 포함해야 합니다. 부호 있는 지수는 e 또는 E로 표시합니다.

부동소수점 리터럴 예시:

3.14159       // 합법적
314159E-5L    // 합법적
510E          // 불법: 불완전한 지수
210f          // 불법: 소수점이나 지수 없음
.e55          // 불법: 정수 부분 또는 소수 부분 누락

불리언 리터럴

표준 C++ 키워드인 두 가지 불리언 리터럴이 있습니다.

true의 값이 1과 같고 false의 값이 0과 같다고 생각해서는 안 됩니다.

문자 리터럴

문자 리터럴은 작은따옴표로 묶습니다. 리터럴이 L(대문자만)로 시작하면 와이드 문자 리터럴(예: L'x')이며 wchar_t 타입 변수에 저장해야 합니다. 그렇지 않으면 좁은 문자 리터럴(예: 'x')이며 단순 char 타입 변수에 저장할 수 있습니다.

문자 리터럴은 일반 문자(예: 'x'), 이스케이프 시퀀스(예: '\t'), 유니버설 문자(예: '\u02C0')가 될 수 있습니다.

C++에서 백슬래시가 앞에 오면 특수한 의미를 가지는 문자들이 있습니다. 줄바꿈(\n)이나 탭(\t)을 나타내는 데 사용됩니다. 주요 이스케이프 시퀀스 코드:

이스케이프 시퀀스의미
\\\ 문자
\'' 문자
\"" 문자
\?? 문자
\a경고음/벨
\b백스페이스
\f폼 피드
\n줄바꿈(개행)
\r캐리지 리턴
\t수평 탭
\v수직 탭
\ooo1~3자리 8진수
\xhh...1자리 이상 16진수

이스케이프 시퀀스 문자 예제:

Live Demo
#include <iostream>
using namespace std;
int main() {
    cout << "Hello\tWorld\n\n";
    return 0;
}

위 코드를 컴파일하고 실행하면:

Hello World

문자열 리터럴

문자열 리터럴은 큰따옴표로 묶습니다. 문자열은 문자 리터럴과 유사한 문자들을 포함합니다: 일반 문자, 이스케이프 시퀀스, 유니버설 문자.

긴 줄을 문자열 리터럴로 여러 줄로 나누고 공백으로 구분할 수 있습니다.

문자열 리터럴 예시. 세 형태 모두 동일한 문자열입니다.

"hello, dear"
"hello, \ dear"
"hello, " "d" "ear"

상수 정의

C++에서 상수를 정의하는 두 가지 간단한 방법이 있습니다.

#define 전처리기

#define 전처리기로 상수를 정의하는 형태:

#define identifier value

상세 예제:

Live Demo
#include <iostream>
using namespace std;
#define LENGTH 10
#define WIDTH 5
#define NEWLINE '\n'
int main() {
    int area;
    area = LENGTH * WIDTH;
    cout << area;
    cout << NEWLINE;
    return 0;
}

위 코드를 컴파일하고 실행하면:

50

const 키워드

const 접두사를 사용해 특정 타입의 상수를 선언할 수 있습니다.

const type variable = value;

상세 예제:

Live Demo
#include <iostream>
using namespace std;
int main() {
    const int LENGTH = 10;
    const int WIDTH = 5;
    const char NEWLINE = '\n';
    int area;
    area = LENGTH * WIDTH;
    cout << area;
    cout << NEWLINE;
    return 0;
}

위 코드를 컴파일하고 실행하면:

50

상수를 대문자로 정의하는 것이 좋은 프로그래밍 관행입니다.

C 언어

  1. C++ 변수, 리터럴, 상수 마스터하기: 종합 가이드
  2. C++ 데이터 타입 이해하기: 기초, 수정자, 모범 사례
  3. C++ 연산자 마스터하기: 유형별 완벽 가이드와 실전 예제
  4. C++ 주석: 가독성 높고 유지보수하기 좋은 코드 작성법
  5. C++ 클래스 템플릿 마스터: 실전 가이드
  6. C 변수, 상수, 리터럴: 완전 가이드
  7. 파이썬 변수, 상수, 리터럴 – 종합 가이드
  8. C 상수와 리터럴: 정수, 실수, 문자, 문자열, 심볼릭 상수 정의법
  9. C++ 프로그래밍 언어: 개요와 핵심 특징
  10. C++ 상수와 리터럴 완전 정복: 타입, 문법, 모범 사례