Comment retourner un tableau à partir d'une fonction en c++ ?
C++ Renvoyer un tableau à partir d'une fonction
C++ ne permet pas de renvoyer un tableau complet comme argument de fonction. Cependant, vous pouvez renvoyer un pointeur vers un tableau en spécifiant le nom du tableau sans index.
Si vous souhaitez renvoyer un tableau unidimensionnel à partir d'une fonction, vous devez déclarer une fonction qui renvoie un pointeur, comme suit :
int * myFunction() { . . . }
De plus, C++ ne prend pas en charge le renvoi de l'adresse d'une variable locale en dehors d'une fonction, sauf si les variables locales sont définies comme des variables statiques.
Maintenant, regardons la fonction suivante, qui générera 10 nombres aléatoires et les renverra à l'aide d'un tableau, comme suit :
Instance
#include <iostream> #include <cstdlib> #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; }
Quand ce qui précède Quand le le code est compilé et exécuté, il produit les résultats suivants :
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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!