Latest web development tutorials

C ++ mengembalikan fungsi pointer dari

C ++ pointer C ++ pointer

Dalam bab terakhir, kita telah belajar bagaimana C ++ mengembalikan fungsi array dari Demikian pula, C ++ memungkinkan Anda untuk kembali dari fungsi pointer. Untuk melakukan ini, Anda harus menyatakan fungsi mengembalikan pointer, sebagai berikut:

int * myFunction()
{
.
.
.
}

Selain itu, C ++ tidak mendukung kembali variabel lokal luar alamat fungsi ini, kecuali definisi variabel lokal sebagai variabelstatis.

Sekarang, mari kita lihat fungsi berikut, yang akan menghasilkan 10 angka acak, dan nama array yang mewakili pointer (yaitu, alamat dari elemen pertama array) untuk mengembalikan mereka, sebagai berikut:

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

Ketika kode di atas dikompilasi dan dijalankan, menghasilkan hasil sebagai berikut:

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 ++ pointer C ++ pointer