这是什么样的指针功能?

时间:2015-01-04 17:08:51

标签: c++

int * getRandom( )
{
  static int  r[10];

  // set the seed
  srand( (unsigned)time( NULL ) );
  for (int i = 0; i < 10; ++i)
  {
    r[i] = rand();
    cout << r[i] << endl;
  }
  return r;
}

我想知道在这里有一个名为getRandon的函数,该函数的数据类型是int。为什么我们将此函数声明为指针。

4 个答案:

答案 0 :(得分:4)

它返回一个指向带有静态存储的int数组的第一个元素的指针。该数组在程序的生命周期内有效。

答案 1 :(得分:1)

int* getRandom() {}

这定义了一个函数,该函数不接受任何参数并返回指向int的指针。在你的情况下,它返回指向整数数组的第一个元素的指针。由于该数组是静态分配的,因此即使该函数退出也可用。

答案 2 :(得分:1)

该函数将指针返回给int。这是星号的重要性。

语法与变量,函数参数等声明中星号的使用方式没有什么不同。

函数return r r数组而不是指针的原因是arrays "decay" into pointers

答案 3 :(得分:0)

返回int指针因为,

  

在此函数返回整数指针的位置,只需要一个整数,   所以在这种情况下,指针返回地址为&#34; 0&#34;指数。通过使用这个指针,我们可以访问该数组中给出的任何值,

     

数组是静态的,所以它在执行开始时创建&amp;在程序终止时处理。