c++从函数返回数组的方法代码

时间:2022-01-27 08:46:01

c++如何从函数返回数组?

C++ 从函数返回数组

C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。

如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:

?
1
2
3
4
5
6
7
8
9
10
11
int * myFunction()
 
{
 
.
 
.
 
.
 
}

另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。

现在,让我们来看下面的函数,它会生成 10 个随机数,并使用数组来返回它们,具体如下:

实例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#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;
 
}

当上面的代码被编译和执行时,它会产生下列结果:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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++如何从函数返回数组的详细内容,如果大家还有任何补充可以联系服务器之家小编。

原文链接:https://www.php.cn/csharp-article-442376.html