이 topic에 따르면 과 포인터를 비교하여 배열의 마지막 요소를 지나서 비교할 수 있습니다.포인터 비교는 배열 객체의 첫 번째 요소 앞에 하나를 사용하여
및 배열 객체의 첫번째 요소 앞에 하나 포인터 비교 @jalf 의견에 따라 금지된다.
는int array[10];
int *ptr;
for(ptr=&array[9]; ptr>(array-1); ptr--) {...}
예 2
int array[10];
int *ptr;
for(ptr=&array[9]; ptr>=(array); ptr--) {...}
1
예 1
) 모두 예 1 및 예 2이 금지인가?2) 배열 객체의 첫 번째 요소 앞에 포인터를 과 비교한다는 증거가 C 표준에서 있습니까?
왜 : 특별한 이유는 2 개의 포인터를 사용하여 (배열 내에서) 모든 요소 슬라이스를 나타낼 수 있기 때문입니다. 슬라이스의 첫 번째 요소와 마지막 요소를 가리키는 경우 빈 슬라이스를 나타낼 수 없습니다. 그러나 반 개방 범위를 표현함으로써 다음과 같이 할 수 있습니다.'[p, p]'는 빈 슬라이스를 나타냅니다. –