Latest web development tutorials

Функция C ++ возвращает массив из

C ++ Массив C ++ Массив

C ++ не позволяет вернуться к полной массив в качестве параметра. Тем не менее, вы можете указать имя массива без индекса, чтобы вернуть указатель на массив.

Если вы хотите вернуть одномерный массив из функции, вы должны объявить функцию, возвращающую указатель, следующим образом:

int * myFunction()
{
.
.
.
}

Кроме того, C ++ не поддерживает не возвращает локальную переменную вне адрес функции, если определение локальных переменных в качествестатических переменных.

Теперь, давайте рассмотрим следующую функцию, которая будет генерировать 10 случайных чисел и использовать массив для возвращения их следующим образом:

#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;
}

Когда приведенный выше код компилируется и выполняется, он дает следующие результаты:

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

C ++ Массив C ++ Массив