>  기사  >  백엔드 개발  >  C에서 문자열 리터럴의 실제 유형은 무엇입니까?

C에서 문자열 리터럴의 실제 유형은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-27 21:24:30214검색

 What is the True Type of a String Literal in C  ?

문자열 리터럴의 유형 결정

많은 프로그래머는 문자열 리터럴의 유형을 이해하는 데 어려움을 겪습니다. const char *(상수 문자에 대한 포인터)입니까 아니면 const char(상수 문자)입니까?

답은 C의 문자열 리터럴 표현에 있습니다. 문자열 리터럴이 끝에 null 종결자(' ')가 추가된 문자 배열로 저장되는 C와 달리 C에서 문자열 리터럴은 기본적으로 const char[N]입니다. 여기서 N은 문자열의 길이를 나타냅니다(null 종결자 포함).

본질적으로 const char[N]과 char const[N]은 동일합니다. 이는 문자열의 문자 수(포함된 null 문자 포함)를 정확하게 계산하는 sizeof("hello") - 1을 사용하여 문자열 리터럴의 길이를 안정적으로 결정할 수 있음을 의미합니다. 문자열 리터럴이 포인터인 경우 이 접근 방식은 항상 시스템의 포인터 크기에서 1을 뺀 값을 반환하므로 실패합니다.

위 내용은 C에서 문자열 리터럴의 실제 유형은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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