C 및 C에서 Index[array]를 사용하여 배열에 액세스
다음 코드 조각을 고려하세요.
int arr[] = {1, 2, 3}; 2[arr] = 5; // Does this compile? assert(arr[2] == 5); // Does this assertion fail?
일부 면접관은 왜 이 코드 조각이 컴파일 및 실행되지 않고 실행되는지 물을 수 있습니다. 오류.
코드 이해
2[arr] 표현식은 *(2 arr)과 동일합니다. C와 C에서는 덧셈이 교환 가능하므로 []에 대한 인수의 순서는 중요하지 않습니다. 따라서 2[arr]은 배열 arr의 세 번째 요소에 효과적으로 액세스합니다.
이것이 언어 사양에 의해 보장됩니까?
예. C 및 C 표준에서는 이 동작을 명시적으로 설명합니다.
따라서 index[array]를 사용하여 배열에 액세스하는 것은 언어 사양에 의해 보장됩니다. 비정상적이거나 반직관적인 경우.
위 내용은 `2[arr]`은 C와 C에서 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!