Latest web development tutorials

função de C ++ retorna uma matriz de

Matriz C ++ Matriz C ++

C ++ não permitir um retorno ao conjunto completo como parâmetro. No entanto, você pode especificar o nome da matriz, sem um índice para retornar um ponteiro para uma matriz.

Se você quiser retornar uma matriz unidimensional de uma função, você deve declarar uma função retornando um ponteiro, como segue:

int * myFunction()
{
.
.
.
}

Além disso, C ++ não suporta devolver uma variável local fora endereço da função, a menos que a definição de variáveis locais como variáveisestáticas.

Agora, vamos olhar para a função seguinte, que vai gerar 10 números aleatórios, e usar uma matriz para devolvê-los, como se segue:

#include <iostream>
#include <ctime>

using namespace std;

// 要生成和返回随机数的函数
int * getRandom( )
{
  static int  r[10];

  // 设置种子
  srand( (unsigned)time( NULL ) );
  for (int i = 0; i < 10; ++i)
  {
    r[i] = rand();
    cout << r[i] << endl;
  }

  return r;
}

// 要调用上面定义函数的主函数
int main ()
{
   // 一个指向整数的指针
   int *p;

   p = getRandom();
   for ( int i = 0; i < 10; i++ )
   {
       cout << "*(p + " << i << ") : ";
       cout << *(p + i) << endl;
   }

   return 0;
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

624723190
1468735695
807113585
976495677
613357504
1377296355
1530315259
1778906708
1820354158
667126415
*(p + 0) : 624723190
*(p + 1) : 1468735695
*(p + 2) : 807113585
*(p + 3) : 976495677
*(p + 4) : 613357504
*(p + 5) : 1377296355
*(p + 6) : 1530315259
*(p + 7) : 1778906708
*(p + 8) : 1820354158
*(p + 9) : 667126415

Matriz C ++ Matriz C ++