> 백엔드 개발 > C++ > C/C에서 `array[100] = {0};`는 어떻게 전체 배열을 0으로 초기화합니까?

C/C에서 `array[100] = {0};`는 어떻게 전체 배열을 0으로 초기화합니까?

Barbara Streisand
풀어 주다: 2024-12-11 00:15:10
원래의
605명이 탐색했습니다.

How Does `array[100] = {0};` Initialize an Entire Array to Zero in C/C  ?

배열의 마법 이해하기[100] = {0}; 초기화

C/C 코드 조각 배열[100] = {0}을 발견하면 개발자는 컴파일러가 어떻게 모든 배열 요소를 0으로 쉽게 초기화하는지 궁금해할 수 있습니다.

컴파일러의 초기화 메커니즘

이 동작은 신비한 마법이 아니라 오히려 C 및 C 사양의 잘 정의된 측면.

C에서

C 사양의 섹션 6.7.8.21에 따라 배열 내의 초기화되지 않은 요소는 초기화됩니다. 다음과 같습니다:

  • 포인터는 다음과 같이 설정됩니다. NULL.
  • 산술 유형(int로 승격되는 문자 포함)은 0으로 초기화됩니다.

이는 중첩 배열 및 구조에 재귀적으로 적용됩니다.

C

섹션 8.5.1.7 C 사양에는 배열 내의 초기화되지 않은 요소가 집계 초기화된다고 명시되어 있습니다. 집계 초기화는 요소 값을 기본값(문자의 경우 0)으로 초기화합니다.

빈 초기화 목록

C에서는 빈 초기화 목록 배열을 사용할 수도 있습니다. [100] = {}; 모든 배열 요소에 대해 집계 초기화를 트리거합니다.

컴파일러 어셈블리 출력

컴파일러에서 생성된 특정 어셈블리 코드는 특정 구현에 따라 달라질 수 있습니다. 그러나 일반적으로 배열의 일부를 초기화하고 초기화된 값을 나머지 요소에 복사하는 작업이 포함됩니다.

위 내용은 C/C에서 `array[100] = {0};`는 어떻게 전체 배열을 0으로 초기화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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