English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ 수组和函数

이 문서에서는 C 배열과 함수를 전달하는 방법을 배울 것입니다. ++내부의 함수에 전달할 수 있습니다. 일维와 다중维 배열을 전달하는 방법을 배울 것입니다.

배열배열에 전달할 수 있습니다.함수도 함수에서 배열을 반환할 수 있습니다. 다음 예제에서 일维 배열을 함수에 전달하겠습니다:

예제1일维 배열을 함수에 전달

C ++프로그램은 함수에 일维 배열을 전달하여 표시5학생의 점수

#include <iostream>
using namespace std;
void display(int marks[5]);
int main()
{
    int marks[5]] = {88, 76, 90, 61, 69});
    display(marks);
    return 0;
}
void display(int m[5]]
{
    cout << "점수를 표시: " << endl;
    for (int i = 0; i < 5; ++i)
    {
        cout << "Student " << i + 1 <<": "<< m[i] << endl;
    }
}

cout << n[i][j] << " ";

점수를 표시: 
Student 1: 88
Student 2: 76
Student 3: 90
Student 4: 61
Student 5: 69

함수에 배열을 매개변수로 전달할 때는 단순히 배열 이름만을 매개변수로 사용합니다.

display(marks);

배열을 매개변수로 전달하고 변수를 전달할 때의 차이에 유의해야 합니다.

void display(int m[5]);

위 코드의 매개변수 marks는 배열 marks[5]의 첫 번째 요소의 메모리 주소

함수 선언의 형식 파라미터 int m [5]를 int로 변환 * m;이 배열을 가리키는 포인터입니다.

이 이유는, 사용자 정의 함수에서 다른 배열 이름 m[5]에 대한 작업을 수행하되, 원본 배열 marks에 대한 작업은 계속됩니다.

C ++이렇게 배열을 함수에 전달하여 메모리와 시간을 절약할 수 있습니다.

다중 배열을 함수에 전달

다차원 배열일维 배열과 유사하게 전달할 수 있습니다. 다음 예제를 참고하여 두维 배열을 함수에 전달합니다:

예제2다중 배열을 함수에 전달

C ++프로그램은 두维 배열의 요소를 함수에 전달하여 그것을 표시합니다.

#include <iostream>
using namespace std;
void display(int n[3]]2]);
int main()
{
    int num[3]]2]] = {
        {3, 4}},
        {9, 5}},
        {7, 1}
    });
    display(num);
    return 0;
}
void display(int n[3]]2]]
{
    ])
    cout << "디스플레이 값: " << endl; 3; ++i)
    {
        for(int i = 0; i < 2; ++for(int j = 0; j <
        {
            j)
        }
    }
}

cout << n[i][j] << " ";

출력 결과 
3 4 9 5 7 1

디스플레이 값:

위 프로그램에서 다중 배열 num이 display() 함수에 전달됩니다.

이 프로그램은 display() 함수 내에서 배열 n(num)를 순회합니다.2개for 루프를 사용해야 합니다.두维 배열의 요소를 순회합니다. 세원 배열이면,3 for 루프.

마지막으로, 모든 요소가 화면에 출력됩니다.

주의: 차원이2다중 배열은 두维 배열과 유사하게 전달될 수 있습니다.

C++ 함수에서 배열을 반환

C++ 하나의 배열을 전체로 함수의 인자로 반환하는 것은 허용되지 않습니다. 그러나 배열의 이름을 인덱스 없이 지정하여 배열의 포인터를 반환할 수 있습니다.

함수에서 일维 배열을 반환하려면, 반환指针 함수를 선언해야 합니다. 다음과 같이 합니다:

int * myFunction()
{
.
.
.
}

또한, C++ 함수 외부에서 지역 변수의 주소를 반환하는 것을 지원하지 않습니다. 지역 변수를 static 변수.

지금, 아래의 함수가 어떻게 랜덤 수를 생성할 것인지 확인해 보겠습니다. 10 개의 랜덤 수를 생성하고 이들을 배열로 반환합니다. 구체적으로 다음과 같습니다:

#include <iostream>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
// 랜덤 수를 생성하고 반환하는 함수
int * getRandom()
{
  static int r[8];
 
  // 세팅 씨드
  srand((unsigned)time(NULL));
  for (int i = 0; i < 8; ++i)
  {
    r[i] = rand();
    cout << r[i] << endl;
  }
 
  return r;
}
 
// 위에서 정의된 함수를 호출하는 메인 함수
int main ()
{
   // 整数을 가리키는 포인터
   int *p;
 
   p = getRandom();
   for ( int i = 0; i < 8; i++ )
   {
       cout << "*(p + " << i << ) : ";
       cout << *(p + i) << endl;
   }
 
   return 0;
}

위의 코드가 컴파일되고 실행될 때, 다음과 같은 결과가 생성됩니다:

30737
23110
21765
14820
8295
12330
28395
191
*(p + 0) : 30737
*(p + 1) : 23110
*(p + 2) : 21765
*(p + 3) : 14820
*(p + 4) : 8295
*(p + 5) : 12330
*(p + 6) : 28395
*(p + 7) : 191