>백엔드 개발 >C++ >C의 함수에 배열이 어떻게 전달됩니까?

C의 함수에 배열이 어떻게 전달됩니까?

DDD
DDD원래의
2024-12-19 04:26:08980검색

How Are Arrays Passed to Functions in C  ?

C에서 함수에 배열 전달

C에서 배열은 참조 또는 값으로 함수에 전달될 수 있습니다. 그러나 배열은 단순히 배열 이름을 함수에 전달하여 특정 유형의 단일 요소처럼 처리할 수 없다는 점에서 일반 변수와 다릅니다. 대신 배열 이름은 배열의 첫 번째 요소에 대한 포인터로 처리됩니다.

따라서 함수 매개변수를 배열로 선언하면 실제로 해당 요소 유형에 대한 포인터를 선언하는 것입니다. 예를 들어, 다음 함수 선언은 정수 배열과 배열 길이를 나타내는 정수를 사용하는 함수를 선언합니다.

void printarray(int arg[], int length);

주 함수에서 printarray 함수를 호출하면 배열의 이름이 인수로 전달됩니다. 배열의 이름은 배열의 첫 번째 요소의 주소를 나타냅니다. 이는 배열의 첫 번째 요소에 대한 포인터를 전달하는 것과 같습니다.

아래 코드에서 변수 firstarray는 세 개의 정수로 구성된 배열입니다. 변수 secondarray는 5개의 정수로 구성된 배열입니다. printarray 함수는 두 번 호출됩니다. 한 번은 firstarray 인수로, 한 번은 secondarray 인수로 호출됩니다. firstarray 인수의 길이는 3이고, secondarray 인수의 길이는 5입니다.

int firstarray[] = {5, 10, 15};
int secondarray[] = {2, 4, 6, 8, 10};
printarray(firstarray, 3);
printarray(secondarray, 5);

printarray 함수에서 arg 매개변수는 전달되는 배열의 첫 번째 요소에 대한 포인터입니다. 길이 매개변수는 전달되는 배열의 길이입니다. printarray 함수는 배열 요소의 값을 인쇄합니다.

void printarray (int arg[], int length) {
    for (int n = 0; n < length; n++) {
        cout << arg[n] << " ";
    }
    cout << "\n";
}

코드는 다음과 같습니다.

5 10 15
2 4 6 8 10

위 내용은 C의 함수에 배열이 어떻게 전달됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.