Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++에서 여러 문자에 작은따옴표를 사용하면 어떤 일이 발생할까?

C++에서 큰따옴표(")는 문자열 리터럴을 나타내는 데 사용되고, 작은따옴표(')는 단일 문자 리터럴을 나타내는 데 사용됩니다. 그렇다면 작은따옴표 안에 여러 개의 문자를 넣어 출력하려고 하면 어떤 결과가 나올까요?

예제 코드

#include<iostream>
using namespace std;
main() {
    cout << 'ABCD';
}

실행 결과

1094861636

프로그램을 실행하면 의외로 매우 큰 숫자가 출력됩니다. 과연 이 숫자에는 어떤 의미가 숨겨져 있을까요?

결론부터 말하면, 이 숫자는 메모리 주소가 아닙니다. 실제로 이 값은 각 문자의 ASCII 값을 기반으로 만들어진 것입니다.

이 예제에서는 A, B, C, D 네 개의 문자를 사용했습니다. 이 문자들의 ASCII 값을 16진수로 표현하면 각각 다음과 같습니다.

  • A → 41
  • B → 42
  • C → 43
  • D → 44

이 값들을 차례대로 하나로 이어 붙이면 41424344라는 16진수가 됩니다. 이를 10진수로 변환하면 바로 1094861636, 즉 프로그램에서 출력된 그 숫자가 나오는 것입니다.

정리하자면, C++에서 작은따옴표에 여러 문자를 넣으면 컴파일러가 이를 일종의 정수 상수(multi-character literal)로 처리하며, 각 문자의 ASCII 코드를 조합한 값이 결과로 나타나게 됩니다. 따라서 여러 문자를 다룰 때는 반드시 큰따옴표를 사용하는 것이 올바른 방법입니다.