função de C ++ retorna uma matriz de
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