Latest web development tutorials

C ++ Funktion gibt einen Zeiger aus

C ++ Zeiger C ++ Zeiger

Im letzten Kapitel haben wir gelernt, wie C ++ Funktion ein Array zurückgibt von ähnlicher, C ++ können Sie von der Funktionszeiger zurückzukehren. Um dies zu tun, müssen Sie eine Funktion Rückkehr einen Zeiger deklarieren, wie folgt:

int * myFunction()
{
.
.
.
}

Darüber hinaus unterstützt C ++ eine lokale Variable nicht außerhalb der Adresse der Funktion zurückkehrt, es sei denn , die Definition von lokalen Variablen alsstatische Variablen.

Lassen Sie uns nun auf die folgende Funktion suchen, die 10 Zufallszahlen zu erzeugen, und der Name des Arrays, die Zeiger (dh Adresse des ersten Array-Element) stellt sie zurück, wie folgt:

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

Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:

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