여기서, I는 초기화 한 배열 :지정자가 요소를 엄격하게 증가시킨 후에 요소가 존재합니까? 이런
#include <stdio.h>
int main()
{
int a[10] = {1, 2, 3, [7] = 4, 8, 9};
printf("a[7] = %d\na[8] = %d\na[9] = %d\n", a[7], a[8], a[9]);
return 0;
}
출력 : 여기
a[7] = 4
a[8] = 8
a[9] = 9
, I 선택한 배열 인덱스 7
a[7] = 4
A와 후 일부 요소를 추가했다. 그런 다음 색인 7
, 8
및 9
의 배열 요소를 인쇄하고 올바르게 인쇄하십시오.
그래서 인덱스 8
과 9
의 정확한 출력이 명시 적으로 정의되어 있지 않습니까? 시퀀스가 인덱스 3
에서 시작하지 않는 이유는 무엇입니까?
이것은 C99 (및 g90의 C90)에서 허용됩니다. https://gcc.gnu.org/onlinedocs/gcc/Designated-Inits.html; 또한 http://www.drdobbs.com/the-new-c-declarations-initializations/184401377 –
을 참고하십시오. C++에서는 허용되지 않습니다. 언어가 분기 된 또 다른 지점입니다. – Bathsheba
허용 될 수도 있지만 매우 자주하지 마십시오. (결코 좋을 것 같지 않습니다 :). –