>백엔드 개발 >C++ >C와 C에서 `sizeof('a')`가 다른 이유는 무엇입니까?

C와 C에서 `sizeof('a')`가 다른 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-21 14:28:10323검색

Why Does `sizeof('a')` Differ in C and C  ?

'a'에 C보다 C에서 더 많은 바이트가 필요한 이유

코드 조각의 출력을 검토할 때:

#include <stdio.h>
int main(void)
{
    printf("sizeof(char) = %zu\n", sizeof(char));
    printf("sizeof('a')  = %zu\n", sizeof('a'));
}

알 수 있습니다. 문자 상수 'a'의 크기는 C와 C 사이에서 다릅니다. 이러한 차이의 원인을 자세히 살펴보겠습니다.

C에서 'a'와 같은 문자 상수는 4바이트 크기 또는 구현별 값을 갖는 int로 저장됩니다. 그러나 C에서 'a'의 유형은 명시적으로 char이며 1바이트만 차지합니다.

이러한 구별은 두 언어에서 문자 상수를 다르게 처리하는 데서 비롯됩니다. C는 문자 상수를 정수(int 유형)로 처리하는 반면 C는 문자에 대해 별도의 char 유형을 도입합니다.

따라서 C에서 'a'는 정수로 저장되므로 크기가 4바이트입니다. 반면 C에서는 'a'가 문자(char)이므로 크기가 1바이트가 됩니다. 이러한 차이는 두 언어 간의 미묘한 차이 중 하나를 강조합니다.

위 내용은 C와 C에서 `sizeof('a')`가 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.