C++基础知识(十)函数返回数组
1.返回一维数组
- 1.使用static
#include <iostream>
using namespace std;int* function()
{static int arr[3] = { 0, 1, 2};return arr;
}
int main()
{int *arr = function();cout << arr[0] << endl;cout << arr[1] << endl;cout << arr[2] << endl;
}
- 2.使用new
#include <iostream>
using namespace std;int* function()
{int* arr= new int[3]{ 0, 1, 2};return arr;
}
int main()
{int *arr = function();cout << arr[0] << endl;cout << arr[1] << endl;cout << arr[2] << endl;
}
使用引用
#include <iostream>
using namespace std;
const int N = 3;
int(&func())[N];
int (&func())[N]
{static int arr[N]{0, 1, 2};return arr;
}
int main()
{// int*&&p = func(); // also OK, why?int *p = func();cout << p[0] << endl;cout << p[1] << endl;cout << p[2] << endl;
}
简化版本
#include <iostream>
using namespace std;
const int N = 3;
typedef int intarr[N];
intarr &func() //返回数组的引用
{static int arr[N]{0, 1, 2};return arr;
}
int main()
{int *p = func();cout << p[0] << endl;cout << p[1] << endl;cout << p[2] << endl;
}
使用auto关键字
#include <iostream>
using namespace std;
const int N = 3;
auto func()->int(&)[N] //返回数组的引用
{static int arr[N]{0, 1, 2};return arr;
}
int main()
{int *p = func();cout << p[0] << endl;cout << p[1] << endl;cout << p[2] << endl;
}
使用decltype关键字
#include <iostream>
using namespace std;
const int N = 3;
int arra[N];decltype(arra)& func() //返回数组的引用
{static int arr[N]{0, 1, 2};return arr;
}
int main()
{int *p = func();cout << p[0] << endl;cout << p[1] << endl;cout << p[2] << endl;
}
2.返回二维数组
- 1.使用动态数组
#include <iostream>
using namespace std;
const int N = 3;
void printArray(int** arr)
{for(int i = 0;i<N;++i){for(int j = 0;j<N;++j){cout << arr[i][j];}cout << endl;}
}
int** getArray()
{int** arr = new int*[N];for(int i=0;i<N;++i){arr[i] = new int[N];for(int j=0;j<N;++j){arr[i][j] = i+j;}}return arr;
}int main()
{int **arr = getArray();printArray(arr);return 0;
}
- 2.使用static
#include <iostream>
using namespace std;
const int N = 3;
void printArray(int arr[][N])
{for(int i = 0;i<N;++i){for(int j = 0;j<N;++j){cout << arr[i][j];}cout << endl;}
}
int (*(getArray)())[N] // int (*getArray())[N]也可以
{static int arr[N][N] = {{0,1,2},{3,4,5},{6,7,8}};return arr;
}int main()
{int (*arr)[N] ;arr = getArray();printArray(arr);return 0;
}
简化版本
#include <iostream>
using namespace std;
const int N = 3;
void printArray(int arr[][N])
{for(int i = 0;i<N;++i){for(int j = 0;j<N;++j){cout << arr[i][j];}cout << endl;}
}
typedef int (*DoublePointer)[N];
DoublePointer getArray()
{static int arr[N][N] = {{0,1,2},{3,4,5},{6,7,8}};return arr;
}int main()
{int (*arr)[N] ;arr = getArray();printArray(arr);return 0;
}
- 3.使用struct
#include <iostream>
using namespace std;
const int N = 3;struct ArrStruct
{int arr[N][N];
};void printArray(ArrStruct var)
{for(int i = 0;i<N;++i){for(int j = 0;j<N;++j){cout << var.arr[i][j];}cout << endl;}
}ArrStruct getArray()
{ArrStruct var;for(int i = 0;i<N;++i){for(int j = 0;j<N;++j){var.arr[i][j] = i + j;}}return var;
}int main()
{ArrStruct arr;arr = getArray();printArray(arr);return 0;
}
C++基础知识(十)函数返回数组相关推荐
- 【转】C 从函数返回数组
http://www.runoob.com/cprogramming/c-return-arrays-from-function.html C 从函数返回数组 C 数组 C 语言不允许返回一个完整的数 ...
- linux shell 字符串 数组,bash shell函数返回数组字符串
#!/bin/bash # script:getselfvar.sh # 每个脚本中都在末尾追加了一段特殊的域名ip序列,需要将这段序列存放到数组变量中,供 # 脚本使用,例子中的ip和域名是处理过的 ...
- C++:C++语言入门级基础知识考察点回顾之数组、指针
C++:C++语言入门级基础知识考察点回顾之数组.指针 目录 C++的数组.字符串 1.数组 1.1.声明数组 1.2.一维数组的应
- c语言怎么返回数组,c++从函数返回数组的方法代码
c++如何从函数返回数组? C++ 从函数返回数组 C++ 不允许返回一个完整的数组作为函数的参数.但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针. 如果您想要从函数返回一个一维数组,您 ...
- matlab二重指针,VC++中函数返回数组指针或者带指针的结构体的编译方式是否可取? - 程序语言 - 小木虫 - 学术 科研 互动社区...
libralibra 构造函数+析构函数应该是比较正规的做法吧, 你的结构体/类被提早释放的问题,是不是那个结构体是局部变量,当超出作用域时对象被销毁,如果存在析构函数,会被默认调用, 如果你返回结构 ...
- 关于C语言函数返回数组的问题【转】
(转自:https://blog.csdn.net/earbao/article/details/53401800) 关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实 ...
- c语言在函数中返回数组,关于C语言函数返回数组的问题
关于C语言函数返回一个数组 c语言中函数不能直接返回一个数组,但是可以用其他方式实现类似功能,不过需要注意: 1.该数组不能是返回函数的局部变量数组,因为局部变量数组在退出函数后会被释放. 可以是全局 ...
- c语言中自定义函数返回数组,C语言自定义函数返回数组的方法(图文详解)
C语言自定义函数返回数组的方法(图文详解) 最近看到一些同学问题,有提到说:如何在一个函数中返回数组呢? 能否直接在自定义 函数中,写成char *类型返回值,直接返回呢?,代码如下: 直接返回str ...
- vb.net函数返回数组
今天写了一个程序需要函数返回数组,看了别的网友的程序发现有bug,特此记录一下 返回函数写法 Private Function Fun_Fp32ToByte(ByVal fp32 As Single) ...
- c 语言 函数返回数组_如何在C ++函数中返回数组
c 语言 函数返回数组 介绍 (Introduction) In this tutorial, we are going to understand how we can return an arra ...
最新文章
- SQL Server 学习系列之五
- 【Java进阶】Elasticsearch应用之京东搜索
- flink中写入行存储、列存储时设定checkpoint多久时间间隔另存一个新文件
- CSS padding margin border属性讲解
- Java 并发编程小册整理好了
- python 基础 --数字、列表、元组、字典、字符串
- C - Copying Books (POJ - 1505)
- 阿里云DataV与百度Sugar使用比较
- 动态网页抓取数据软件
- 项目质量管理—七种基本质量工具
- 坐拥百度/阿里/腾讯,这家车载导航上市公司的营收却一路下挫?
- Android 解决华为手机图片底色变绿问题
- VideoSolo Blu ray Player for Mac(mac蓝光播放器)
- 渗透测试面试问题集合(转载自己看,链接在开头)
- tushare pro的token凭证码设置教程详解
- 利用ENVI的ROI统计影像信息
- shell 语言:grep的用法;条件语句的用法
- Far planner 代码系列(33) 关于real_world_contour和contour_graph
- 书籍《FPS关卡设计》笔记(一)
- Docker安装RabbitMQ——基于docker-compose工具