처음에는 실수로 발견되었지만 C의이 기능은 매우 흥미 롭습니다. 다음과 같은 간단한 프로그램 :'0 [배열]'은 C에서 잘 작동
#include <stdio.h>
#include <string.h>
main()
{
int array[5];
array[0] = 1;
printf("%d",0[array]);
}
은 C에서 컴파일 오류없이 작동하며 예상 한 것이 아닙니다. 그리고 출력물에 1을 인쇄합니다. 그래서 난 그냥 주위 궁금이 놀라운 발견하고이 코드도 C에서 잘 작동 발견하고이 출력에 10을 인쇄합니다 :
#include <stdio.h>
#include <string.h>
main()
{
int array[5];
array[0] = 1;
array[1] = 10;
printf("%d",0[array+1]);
}
나는이 두 가지 더 컴파일 오류가없는 이유를 알고 싶어하고 또한 내가 원하는 두 번째 작품이 어떻게 작동하는지 알고 싶습니다. 또한이 기능의 흥미로운 사용법을 높이 평가할 것입니다.
C 배열에서 실제로 존재하지 않는다는 사실이 또 다른 표현입니다. –
@ 뜨거운 핥기 :별로. 배열은 B 언어로 "실제로 존재하지 않았습니다". C 배열은 다르지만 인터페이스 사양이 B와 의도적으로 호환되므로 C 배열에서 "실제로 존재하지 않습니다"라는 표시가있을 수 있습니다. 이것은 환상이다. 배열은 C 안에 존재합니다. – AnT
@HotLicks 그게 무슨 뜻입니까? 나는 C 프로그래머가 아니므로, 당신이 말한 것에 대해 많이 알지 못했습니다. 더 잘 이해할 수있는 링크를 제게 제공 할 수 있습니까? – Lrrr