> 백엔드 개발 > C++ > `sizeof('a')`가 C에서는 4를 반환하지만 C에서는 1을 반환하는 이유는 무엇입니까?

`sizeof('a')`가 C에서는 4를 반환하지만 C에서는 1을 반환하는 이유는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-29 12:28:10
원래의
638명이 탐색했습니다.

Why Does `sizeof('a')` Return 4 in C but 1 in C  ?

C와 C 사이의 문자 크기 불일치 이해

C와 C의 문자를 다룰 때 프로그래머는 종종 혼란스러운 불일치에 직면합니다. 그들의 크기. C에서 sizeof('a') 표현식은 4의 값을 생성하는 반면 C에서는 1을 반환합니다. 이 수수께끼 같은 차이는 이러한 언어에서 문자를 처리하는 방식의 근본적인 차이에서 비롯됩니다.

C의 문자 상수

C에서 문자는 일반적으로 문자 상수라고 하는 정수로 표시됩니다. 이러한 상수는 32비트 정수로 저장되며 크기는 4바이트입니다. 이는 4로 평가되는 C의 sizeof('a') 표현식에서 분명하게 나타납니다. 그러나 이 정수에 저장된 실제 값은 문자의 ASCII 코드('a'의 경우 97)입니다.

C의 문자 유형

C와 달리 C는 문자를 나타내는 전용 char 유형을 도입합니다. 이 유형은 정수와 구별되며 sizeof(char)에 따라 결정되는 단일 바이트만 차지합니다. 따라서 C에서 'a'를 사용하면 char 리터럴로 처리되어 크기가 1로 올바르게 보고됩니다.

역사적 이유

불일치 C와 C의 문자 크기 사이에는 역사적 뿌리가 있습니다. 초기 컴퓨팅 시스템에서는 32비트 정수가 표준이었고 C는 자연스럽게 이러한 문자 규칙을 채택했습니다. 그러나 시스템이 발전하고 메모리가 더욱 풍부해지면서 전용 char 유형이 C에 등장하여 보다 효율적인 문자 저장 공간을 제공했습니다.

프로그래머에게 미치는 영향

이러한 차이점은 문자 크기는 언어 간 프로젝트를 작업하거나 C와 C 간에 코드를 포팅하는 프로그래머에게 영향을 미칠 수 있습니다. 개발자는 예기치 않은 동작이나 오류를 방지하기 위해 이러한 언어에서 문자 상수의 다양한 의미를 알고 있어야 합니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿