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

C와 C++에서 작은따옴표와 큰따옴표의 차이점

C와 C++의 따옴표 규칙

C와 C++에서 작은따옴표(' ')는 단일 문자를 표현하는 데 사용되고, 큰따옴표(" ")는 문자열 리터럴을 표현하는 데 사용됩니다. 겉보기에는 비슷해 보이지만, 내부적으로 처리되는 방식은 완전히 다릅니다.

문자열 리터럴 "x"의 구조

문자열 리터럴 "x"는 단순히 하나의 문자가 아니라 하나의 문자열입니다. 이 문자열은 문자 'x'와 함께 문자열의 끝을 알리는 널 종료자(null terminator) '\0'을 포함합니다.

따라서 "x"는 실제로는 두 개의 요소를 가진 문자 배열(character array)입니다. 즉, {'x', '\0'} 형태로 메모리에 저장됩니다.

문자 리터럴의 타입 차이

C++에서 문자 리터럴(예: 'a')의 타입은 char입니다. 그러나 C에서 문자 리터럴의 타입은 int입니다.

이 차이 때문에 다음과 같은 결과가 나타납니다.

  • C 언어에서 32비트 아키텍처 기준으로 sizeof('a')는 4를 반환하며, 이때 CHAR_BIT는 8입니다.
  • 반면 sizeof(char)는 C와 C++ 모두에서 1바이트입니다.

정리

작은따옴표는 단일 문자를, 큰따옴표는 널 종료자를 포함한 문자열을 의미한다는 점을 기억하면 됩니다. 특히 C에서 문자 리터럴이 int 타입으로 취급된다는 사실은 타입 관련 버그를 디버깅할 때 중요한 단서가 될 수 있으므로 주의할 필요가 있습니다.