C에서 임시 객체를 상수 참조에 할당하는 것은 초기에 수명에 대한 의문을 제기할 수 있는 일반적인 작업입니다.
질문:
다음 코드가 유효하고 컴파일러 오류가 발생하지 않는 이유는 무엇입니까?
<code class="cpp">string foo() { return string("123"); } int main() { const string& val = foo(); printf("%s\n", val.c_str()); return 0; }</code>
답변:
C는 임시 개체를 상수 스택 기반 참조에 바인딩하면 참조의 수명과 일치하도록 임시 개체의 수명이 연장된다는 점을 명시적으로 정의합니다. 이 시나리오에서 foo()가 반환한 임시 개체는 main() 함수가 끝날 때까지 유지됩니다.
설명:
참고:
위 내용은 임시 개체를 상수 참조에 바인딩하면 C에서 수명이 연장되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!