>백엔드 개발 >C++ >C/C에서 `sizeof`는 문자열 리터럴을 어떻게 처리합니까?

C/C에서 `sizeof`는 문자열 리터럴을 어떻게 처리합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-11 10:00:16512검색

How Does `sizeof` Handle String Literals in C/C  ?

문자열 리터럴 크기 설명

제공된 코드 조각은 다양한 문자열 리터럴을 사용하는 sizeof 연산자의 동작을 강조합니다. 제기된 질문에 대한 답변을 살펴보겠습니다.

  1. sizeof가 문자열 리터럴의 길이를 계산하는 이유는 무엇인가요?

sizeof 연산자는 문자열 리터럴의 길이를 계산합니다. 주어진 표현식이 차지하는 크기(바이트)입니다. 문자열 리터럴의 경우 문자열의 끝을 표시하는 종료 ' ' 문자를 포함하여 문자 수를 반환합니다. 이 경우 "f"에는 두 개의 문자('f'와 '')가 있으므로 sizeof("f")는 2를 반환합니다.

  1. 다음과 같은 경우 문자열 리터럴의 유형이 다른가요? sizeof에 제공됩니까?

아니요, 문자열 리터럴은 sizeof에 제공될 때 다른 유형을 갖지 않습니다. 이는 해당 유형을 상수 문자 배열로 유지합니다. 그러나 문자열 리터럴이 함수에 전달되거나 포인터가 필요한 표현식에 사용되면 자동으로 문자 포인터로 변환된다는 점에 유의하는 것이 중요합니다. 그러나 sizeof에 전달되면 원래 유형을 문자 배열로 유지합니다.

이 예에서:

  • foo는 상수 문자에 대한 상수 포인터이므로 sizeof(foo )는 포인터의 크기를 반환하며, 이는 일반적으로 32비트 시스템에서 4바이트입니다.
  • bar는 상수 문자의 배열이므로 sizeof(bar)는 2바이트('b' 문자에 하나, ' ' 문자에 하나)인 배열 크기를 반환합니다.

위 내용은 C/C에서 `sizeof`는 문자열 리터럴을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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