함수에 배열 전달 C++

Passing An Array Function C



배열은 동일한 데이터 유형의 요소 그룹입니다. 많은 기능은 기본 프로그램 또는 그 외부의 기능에서 배열에 대해 수행됩니다. C++에서는 함수의 경우 전달해야 합니다. 이것은 매개변수를 인수로 통해 수행됩니다. 이러한 인수는 크기 조정 가능한 배열 또는 포인터 배열을 통해 다양한 방식으로 사용할 수 있습니다. 이 튜토리얼에서는 함수의 다른 매개변수를 사용하여 배열 전송의 몇 가지 주요 측면을 다룰 것입니다.

통사론

[반품유형] [~의 이름기능] (데이터유형배열 이름[정렬크기])

{

기능신체

}

실시예 1

C++ 프로그램에서 학생의 점수를 인쇄해야 하는 예를 고려하십시오. 이 인쇄는 주 프로그램이 아닌 별도의 기능에서 수행됩니다. 대조적으로, 우리는 메인 프로그램에서 입력을 받고 이 값을 매개변수로 함수에 전달할 것입니다. 기능을 고려하십시오. 매개변수에는 배열 값을 허용하는 배열 데이터 유형 변수가 있습니다. 전체 배열이 여기에 선언됩니다. 마크는 for 루프의 도움으로 표시됩니다. 배열에서처럼 배열에서 인쇄를 가져오려면 루프가 필요합니다.

주 함수로 이동하여 크기와 값이 포함된 배열을 선언합니다. 함수를 호출해야 하기 때문입니다. 그래서 방법은 매개변수에 배열 이름을 인수로 사용하여 함수 이름을 작성하는 것입니다. 배열의 크기를 정의하지 않았습니다.

표시하다(점수);

매개변수의 인수는 배열의 메모리 주소를 의미합니다. 함수 헤더의 매개변수에서 int m[7]은 int *m으로 변환됩니다. 여기에는 원래 배열과 동일한 주소가 포함됩니다. 함수 본문에서 m[5]를 사용할 때 원래 배열을 조작할 것입니다.

보이드 디스플레이(인트엠[7] )

Linux 운영 체제에서 터미널을 통해 출력을 얻으려면 몇 가지 전제 조건을 설치해야 합니다. 컴파일하고 명령 프롬프트 터미널에서 코드를 실행하려면 컴파일러가 필요합니다. G++는 컴파일을 위해 C++에서 사용됩니다.

$지++ -또는code3 code3.c

$./코드3

여기서 –o는 소스 파일의 출력을 출력 파일로 저장하는 데 사용됩니다.

출력에서 main 함수의 배열에서 시작된 모든 숫자가 display 함수를 통해 전달되고 표시되는 것을 관찰할 수 있습니다.

실시예 2

매개변수를 통한 배열 전달과 관련된 또 다른 예는 다차원 배열을 함수에 전달하는 것입니다. 여기서는 2차원 배열(2d)이 사용됩니다. 메인 함수에서 배열을 초기화해야 합니다.

정수 배열[][]

2차원 배열 초기화에는 행과 열이 포함됩니다. 그리고 그들의 순서는 프로그램 내내 유지되어야 합니다. 2d 배열은 대괄호 안에 두 개의 숫자로 초기화됩니다. 초기화에서 2개의 열을 설명했습니다.

표시하다(하나에);

매개변수의 배열 이름만 인수로 사용합니다.

이제 디스플레이 기능의 기능을 살펴보겠습니다. 함수가 시작되면 메인 프로그램을 통해 함수 호출에 의해 전달된 배열을 받아들이기 위해 배열 변수가 필요합니다.

보이드 디스플레이(정수 n[][2] )

열 수를 언급하는 것은 필수입니다. 이에 비해 행의 경우에는 필수가 아닙니다. 이것이 결과를 표시하기 위해 for 루프를 사용할 때 행 괄호를 비워둔 이유입니다. 그러나 2차원 배열의 경우 중첩 for 루프를 사용합니다. 여기에는 2개의 변수가 있는 2개의 for 문이 포함됩니다.

동일한 컴파일러를 사용하여 출력을 볼 수 있습니다. 각 값이 행 번호와 열 번호로 별도로 표시되는 결과를 볼 수 있습니다.

실시예 3

이 예제는 이전 예제와 약간 다릅니다. 이 예에서는 함수 호출의 매개변수에서 배열 크기를 언급합니다. 그리고 함수 선언에서 배열의 크기를 받아들이는 변수도 도입되었습니다.

메인 프로그램에서 시작하여 배열은 값으로 초기화됩니다.

평균 = getAverage(균형,5);

결과는 avg 변수에 저장됩니다. 배열 이름만 전달하는 대신 배열 크기도 매개변수에 추가됩니다.

매개변수에는 배열 유형 변수와 배열 크기를 수신하는 정수 데이터 유형도 포함됩니다. 주 프로그램의 유형은 함수에서 정수 값을 수신하기 때문에 int입니다. 그렇지 않으면 다른 경우에는 무효입니다.

이제 우리는 출력을 볼 것입니다. 이 값은 함수에서 가져온 이미지를 통해 볼 수 있습니다.

실시예 4

이 예는 실제로 두 개의 어레이에서 어레이의 최대 수를 결정하는 것과 관련이 있습니다. 여기서 우리는 메인 프로그램에서 두 개의 배열을 초기화합니다. 두 배열 모두 별도의 함수 호출로 함수에 별도로 전달됩니다.

프린트맥스(arr1);

프린트맥스(arr2);

여기서 printMax는 함수의 이름이고 arr은 배열입니다. 결과는 함수에서 반환되지 않고 거기에 표시됩니다. For 루프는 두 배열의 최대 수를 계산합니다. if 문은 for 루프 내에서 사용됩니다. 함수의 헤더는 다음과 같습니다.

무효 인쇄(정수[5])

두 배열 모두 다른 값을 포함하므로 두 결과가 모두 다릅니다.

실시예 5

이 예는 매개변수를 통과하는 모든 유형의 배열을 요약한 것입니다. 크기, 크기가 지정되지 않은 또는 포인터 배열일 수 있습니다. 우리는 그것들을 하나씩 고려할 것입니다.

메인 프로그램에서는 각 함수가 먼저 선언됩니다. 선언에서 차이점을 지적할 수 있습니다.

정수 합계1(int tmp[5]);

정수 합계2(int tmp[]);

정수 합계3(정수*시간);

이 세 가지 배열은 배열이 함수에 이러한 매개변수를 갖는 전달될 수 있음을 나타냅니다.

함수 초기화 후에 배열이 선언된 메인 프로그램이 있습니다. 앞의 예와 달리 배열은 2개가 아닌 1개로 초기화되지만 세 가지 방식으로 전달됩니다. 이제 우리는 여기에서 만들어진 함수 호출을 볼 것입니다.

합계 = 합계1(매상);

합계 = 합계2(매상);

총계 = 합3(매상);

출력은 주 함수에 표시되므로 변수는 함수에서 반환된 값을 수락하도록 선언됩니다. 세 가지 함수 호출 모두에서 매개변수가 동일함을 알 수 있습니다. 각 배열에는 배열 이름만 포함됩니다. 그러나 배열을 받아들이는 함수의 매개변수는 다릅니다.

For 루프를 사용하여 모든 숫자의 합을 계산하므로 세 함수의 내부 본문은 모두 동일합니다. 방법론과 어레이의 값은 동일합니다. 기능의 매개변수 사이에만 구별이 있습니다. 따라서 배열을 받아들이거나 동일한 기능을 수행하기 위해 다른 방법을 사용할 수 있으며 대답은 동일하다는 것이 증명되었습니다. 출력을 확인하여 확인할 수 있습니다. 동일한 컴파일 절차를 사용하여 아래에 추가된 이미지와 같은 출력을 얻습니다.

사용된 세 가지 기능 모두에 대해 답이 동일함을 알 수 있습니다.

결론

이 기사에서 사용자는 매개변수에서 배열을 전달하는 방법에 대해 알게 될 것입니다. 배열은 값을 반환하거나 인수로 전달할 때 많은 경우에 처리할 수 있습니다.