> 백엔드 개발 > C++ > C에서 배열 크기를 정의하기 위해 변수를 사용할 수 없는 이유는 무엇입니까?

C에서 배열 크기를 정의하기 위해 변수를 사용할 수 없는 이유는 무엇입니까?

DDD
풀어 주다: 2024-10-29 06:12:03
원래의
1002명이 탐색했습니다.

Why Can't I Use a Variable to Define an Array Size in C  ?

배열 크기로서의 Const Int: 조건부 허용

배열의 크기를 지정하기 위해 const int를 사용하는 두 가지 예에도 불구하고, C에서는 첫 번째 표현식만 허용됩니다. 이러한 불일치의 이유는 두 표현식의 의미에 있습니다.

첫 번째 표현식인 const int size = 2는 상수 표현식입니다. 즉, 해당 값은 실행 중에 완전히 평가될 수 있습니다. 편집. 이를 통해 컴파일러는 컴파일 시간에 배열의 크기를 결정하여 적절한 양의 메모리를 예약할 수 있습니다.

반면, 두 번째 표현식인 const int size = a는 non을 나타냅니다. -상수 표현식 a는 가변 변수이기 때문입니다. 따라서 컴파일러는 런타임까지 크기 값을 보장할 수 없으므로 컴파일 중에 배열을 할당하는 것이 불가능합니다.

이러한 구별은 C에서 "표현의 종류"의 중요성을 강조합니다. 상수가 아닌 표현식을 배열 크기로 사용하면 컴파일러가 프로그램을 실행하지 않고는 필요한 크기를 결정할 수 없기 때문에 컴파일 시간 메모리 예약이 불가능합니다. 이러한 제한은 런타임 시 변수 값을 결정하는 프로세스인 흐름 분석의 엄격한 규칙과 복잡성으로 인해 발생합니다.

위 내용은 C에서 배열 크기를 정의하기 위해 변수를 사용할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿