C와 C에서 문자열 리터럴은 L-값이고 다른 리터럴은 R-값인 이유는 무엇입니까?
문자열 리터럴은 L-값이고 다른 리터럴은 R-값인 이유
C 및 C에서 문자열 리터럴은 모든 리터럴이 r이라는 규칙의 예외입니다. -가치. C 03 표준에서는 다른 리터럴이 r 값인 반면 문자열 리터럴은 l 값이라고 명시합니다. 마찬가지로 C99 표준에서는 문자열 리터럴을 l-값으로 정의합니다.
이유
이러한 구별은 문자열 리터럴이 객체라는 특성에서 비롯됩니다. 고정된 값을 나타내는 다른 리터럴과 달리 문자열 리터럴은 배열 유형의 개체입니다. C에서는 배열이 표현식의 l-값으로만 존재할 수 있습니다.
문자열 리터럴을 더 유용하게 만들려면 배열 유형 대신 포인터 유형을 갖도록 정의하는 것은 비현실적입니다. 이렇게 하면 문자열 리터럴에 sizeof 연산자를 적용할 수 없습니다.
복합 리터럴의 경우
C99 표준에서는 l-값이기도 한 복합 리터럴을 도입했습니다. 그들의 도입은 특별한 예외가 아닌 리터럴이 l-값이라는 표준으로의 전환을 암시합니다. 복합 리터럴을 사용하면 특정 값으로 초기화된 임시 개체를 만들 수 있습니다. 문자열 리터럴과 마찬가지로 l-값으로 존재합니다.
역사적 맥락
이러한 구별의 이유는 하드웨어 아키텍처에 뿌리를 두고 있을 수도 있습니다. 초기 컴퓨터에서는 문자열이 문자 배열에 대한 포인터가 아닌 문자 배열로 저장되었습니다. 이러한 역사적 맥락은 문자열 리터럴을 l-값으로 정의하는 선택에 영향을 미쳤을 수 있습니다.
결론
문자열 리터럴은 배열 유형의 개체이기 때문에 C 및 C에서 l-값으로 정의됩니다. 다른 리터럴은 고정된 값인 반면 문자열 리터럴은 수정되거나 참조될 수 있는 개체입니다. 이러한 구별을 통해 프로그래밍에서 문자열 리터럴을 보다 유연하게 사용할 수 있습니다.
위 내용은 C와 C에서 문자열 리터럴은 L-값이고 다른 리터럴은 R-값인 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C 언어 함수에 의해 반환 된 값 유형은 무엇입니까? 반환 값을 결정하는 것은 무엇입니까?

STL (정렬, 찾기, 변환 등)의 알고리즘을 효율적으로 사용하려면 어떻게합니까?
