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


目录
相关文章
|
2天前
|
C++ 容器
【C++】拷贝构造函数、拷贝赋值函数与析构函数
【C++】拷贝构造函数、拷贝赋值函数与析构函数
14 6
|
2天前
|
存储 算法 安全
C++一分钟之-数组与指针基础
【6月更文挑战第19天】在C++中,数组和指针是核心概念,数组是连续内存存储相同类型的数据,而指针是存储内存地址的变量。数组名等同于指向其首元素的常量指针。常见问题包括数组越界、尝试改变固定大小数组、不正确的指针算术以及忘记释放动态内存。使用动态分配和智能指针可避免这些问题。示例代码展示了安全访问和管理内存的方法,强调了实践的重要性。
19 3
|
2天前
|
安全 C++ 开发者
C++一分钟之-函数参数传递:值传递与引用传递
【6月更文挑战第19天】C++中函数参数传递涉及值传递和引用传递。值传递传递实参副本,安全但可能效率低,适合不变对象;引用传递传递实参引用,允许修改,用于高效修改或返回多值。值传递示例显示交换不生效,而引用传递示例实现交换。常量引用则防止意外修改。选择传递方式需考虑效率与安全性。
18 2
|
10天前
|
C++
C++中函数模版与类模版
C++中函数模版与类模版
22 4
|
8天前
|
C++
C++数组中插入元素。
C++数组中插入元素。
|
8天前
|
编译器 C++
c++primer plus 6 读书笔记 第八章 函数探幽0
c++primer plus 6 读书笔记 第八章 函数探幽0
|
8天前
|
编译器 vr&ar C++
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
c++primer plus 6 读书笔记 第七章 函数--C++的编程模块
|
8天前
|
编译器 C++ 存储
【C++语言】类和对象--默认成员函数 (中)
【C++语言】类和对象--默认成员函数 (中)
【C++语言】类和对象--默认成员函数 (中)
|
15天前
|
Linux C++
Linux C/C++ main函数
Linux C/C++ main函数
|
8天前
|
C++ 容器
【C++语言】String 类关键函数实现,手搓一个简单字符串类!
【C++语言】String 类关键函数实现,手搓一个简单字符串类!