참조로 배열 전달: 구문 및 기능 이해
다음 함수 프로토타입을 고려하세요.
void foo(int (&myArray)[100]);
이것은 함수는 참조 매개변수로 100개의 정수 배열을 허용합니다. 그러나 "&myArray[100]" 구문은 언뜻 보면 혼란스러워 보일 수 있습니다. 그 의미에 대한 자세한 분석은 다음과 같습니다.
더 자세히 설명하면 다음 함수 프로토타입은 동일하며 모든 크기의 배열을 참조로 허용합니다. 매개변수:
void foo(int * x); void foo(int x[100]); void foo(int x[]);
이 프로토타입에서 별표()는 배열의 첫 번째 요소에 대한 포인터를 나타냅니다. 컴파일러는 이러한 모든 프로토타입을 int 매개변수를 사용하는 것으로 처리합니다.
그러나 참조 구문을 사용하는 경우:
void foo(int (&x)[100]);
함수는 정확히 100개의 정수 배열만 허용합니다. 이는 sizeof(x)를 사용하여 함수 내의 배열 크기를 안전하게 결정할 수 있음을 의미합니다.
반면에 다음 구문은 유효하지 않습니다.
void foo(int & x[100]);
이 구문은 "참조 배열"로 구문 분석되며 이는 C에서 합법적인 선언이 아닙니다.
위 내용은 C는 배열 참조를 어떻게 처리합니까? 구문 및 기능에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!