C++ 在函数中使用静态局部变量,让函数返回数组

简介: C++ 在函数中使用静态局部变量,让函数返回数组

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


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


int * myFunction() { . . . }


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


#include <iostream>

using namespace std;


int a[10] = { 10,20 };

char *GetCharArr()

{

   static char sss[20] = { 0 };

   sprintf_s(sss, "ABABXX%d", a[0]);


   cout << sss << endl;

   return sss;

}


int main()

{

   char *xxx;

   xxx = GetCharArr();

   printf("当前的字符串是:%s", xxx);

   system("PAUSE");

   return 0;

}

tt.png

另一个例子:


#include <iostream>

#include <ctime>

#include <cstdlib>


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;

}

tt.png


目录
相关文章
|
5天前
|
自然语言处理 编译器 C语言
【C++】C++ 入门 — 命名空间,输入输出,函数新特性
本文章是我对C++学习的开始,很荣幸与大家一同进步。 首先我先介绍一下C++,C++是上个世纪为了解决软件危机所创立 的一项面向对象的编程语言(OOP思想)。
31 1
【C++】C++ 入门 — 命名空间,输入输出,函数新特性
|
6天前
|
存储 算法 对象存储
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
【C++入门到精通】function包装器 | bind() 函数 C++11 [ C++入门 ]
14 1
|
6天前
|
存储 算法 数据安全/隐私保护
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
【C++入门到精通】 哈希结构 | 哈希冲突 | 哈希函数 | 闭散列 | 开散列 [ C++入门 ]
7 0
|
6天前
|
存储 自然语言处理 C++
刷题用到的非常有用的函数c++(持续更新)
刷题用到的非常有用的函数c++(持续更新)
14 1
|
7天前
|
存储 编译器 C++
【C++】内存管理和模板基础(new、delete、类及函数模板)
【C++】内存管理和模板基础(new、delete、类及函数模板)
21 1
|
13天前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)
|
15天前
|
存储 C++
【C++模板】模板实现通用的数组
【C++模板】模板实现通用的数组
|
15天前
|
编译器 C++
【C++进阶】引用 & 函数提高
【C++进阶】引用 & 函数提高
|
19天前
|
C++
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
C++从入门到精通:2.1.2函数和类——深入学习面向对象的编程基础
|
19天前
|
存储 C++
C++从入门到精通:2.1.1函数和类
C++从入门到精通:2.1.1函数和类