>백엔드 개발 >C++ >C에서 기본값을 할당하면 일부 배열 요소가 0으로 초기화되는 이유는 무엇입니까?

C에서 기본값을 할당하면 일부 배열 요소가 0으로 초기화되는 이유는 무엇입니까?

DDD
DDD원래의
2024-12-27 20:30:11683검색

Why are Some Array Elements Initialized to Zero When I Assign a Default Value in C  ?

C에서 기본값을 사용하여 배열 요소 초기화

질문:

왜 초기화를 수행합니까? 아래 구문을 사용하여 0이 아닌 값을 가진 배열은 일관성이 없습니다. 값?

int array[100] = {-1};

답변:

질문에 언급된 구문을 사용하여

int array[100] = {-1};

첫 번째 요소를 지정된 값으로 초기화합니다. (-1)이며 나머지 요소는 기본적으로 0으로 설정됩니다. 모든 요소를 ​​-1로 초기화하려면 의 std::fill_n 함수를 활용할 수 있습니다.

std::fill_n(array, 100, -1);

C 코드의 경우 모든 요소를 ​​명시적으로 초기화하려면 수동 루프가 필요합니다. 컴파일러 확장 또는 구현 정의 동작은 바로가기를 제공할 수 있지만 이식성을 위해 이에 의존하는 것은 권장되지 않습니다.

초기화 속도 관련:

기본 초기화 방법은 일반적으로 다음과 같습니다. 루프를 사용하여 각 요소를 명시적으로 초기화하는 것보다 빠릅니다. 그러나 대규모 어레이를 다루지 않는 한 일반적으로 성능 차이는 무시할 수 있습니다.

위 내용은 C에서 기본값을 할당하면 일부 배열 요소가 0으로 초기화되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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