C 프로그래밍에서 이상한 경험을했습니다. 이 코드를 고려하십시오.
int main(){
int array1[6] = {0, 1, 2, 3, 4, 5};
int array2[6] = {6, 7, 8, 9, 10, 11};
printf("%d\n", array1[-1]);
return 0;
}
컴파일하고 실행할 때 오류나 경고가 표시되지 않습니다. 강사가 말했듯이 배열 인덱스 -1
는 다른 변수에 액세스합니다. 여전히 혼란 스럽습니다. 왜 지구상에서 프로그래밍 언어에이 기능이 있습니까? 음의 배열 인덱스를 허용하는 이유는 무엇입니까?
-1
배열이 있고 하위 배열의 요소를 참조하는 것이 더 큰 배열에서 해당 배열 이전의 요소를 참조하는 데 유효한 방법입니다. 다른 하나는 인덱스가 유효하지 않으면 프로그램이 유효하지 않지만 대부분의 구현에서는 범위를 벗어난 오류가 아니라 조용한 나쁜 동작을 보게된다는 것입니다.