기본값: 두 변수 이야기
C에서 초기화되지 않은 변수는 수수께끼를 야기합니다. 일반적인 통념에 따르면 그러한 변수는 쓰레기 값을 보유해야 합니다. 그러나 당황스러운 시나리오에서 다음 코드는 0을 출력합니다.
int main() { int a; cout << a; return 0; }
이 코드가 예기치 않게 동작하는 이유는 무엇입니까?
이 설명은 지역 변수와 비지역 변수의 뚜렷한 동작에 있습니다. 주어진 코드에서 "a"와 같은 지역 변수의 경우 C는 기본적으로 불확실한 값을 할당합니다. 초기화 없이 이러한 값을 사용하면 정의되지 않은 동작이 트리거되며 그 결과는 무해한 것부터 치명적인 것까지 다양합니다.
또는 스레드 로컬 변수를 포함한 비로컬 변수는 전역 변수로부터 0 초기화를 상속합니다. 그러나 제공된 예에서 "a"는 로컬 변수이며 이 초기화의 대상이 아닙니다.
함정을 피하기 위해 프로그래머는 모든 변수를 명시적으로 초기화하는 것이 좋습니다. 전역 변수는 특정 틈새 애플리케이션에서 때때로 정당화되지만 정의되지 않은 동작이 발생할 가능성이 있으므로 주의해서 접근해야 합니다.
위 내용은 C에서 초기화되지 않은 지역 변수가 0을 인쇄하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!