[c++]返回数组
2016-02-02 12:07
225 查看
一维数组
其实如果支持vector的话,只要用引用就可以了。void testFun(vector<int> &var)
1.返回函数指针
/article/6467585.html在c++中是不允许数组作为函数的返回值的
int [] someFunction( ); //ILLEGAL
要想实现函数返回一个数组,那返回对应数组里面类型的指针
you must return a pointer to the array base type and have the pointer point to the array. So, the function declaration would be as follows:
int* someFunction( ); //Legal
int* doubler( int a[], int size) { int* temp = new int[size]; for ( int i =0; i < size; i++) temp[i] = 2*a[i]; return temp; } int main(){ int a[] = {1, 2, 3, 4, 5}; int* b; b = doubler(a, 5); delete[] b return 0; }
2.
void doubler( int* a, int size) { for ( int i =0; i < size; i++) a[i]=0; } int main(){ int a[5]; doubler(a, 5); return 0; }
二维数组
#include <iostream> using namespace std; void property(int shape[4][4]) { shape[0][0]=1; } int main() { int shape[4][4]; property(shape); cout<<shape[0][0]; return 0; }
#include <iostream> using namespace std; void property(int (*shape)[4]) { shape[0][0]=1; } int main() { int shape[4][4]; property(1,shape); cout<<shape[0][0]; return 0; }
void fun2(int **ga,int m,int n) { ga=new int*[m]; for(int i = 0; i < m; i++) ga[i] = new int ; }
int** newArray(int m,int n) { int** array=new int*[m]; for(int i = 0; i < m; i++) array[i] = new int ; return array; } int main() { int **shape; int m,n; m=2;n=4; shape=newArray(m,n); for(int i = 0; i < m; i++) delete []shape[i]; delete []shape; }
相关文章推荐
- eclipse安装C/C++插件cdt
- C++ 字符数组、字符串【输入、输出】
- (C++)链表实现Farey序列
- C#与C++的发展历程第四 - C#6的新时代
- C语言小知识复习1
- c++ 类的堆成员的声明及使用
- Boost 学习之算法篇 clamp
- C语言中const的用法
- C语言建立动态数组
- Windows编程C++之第一个Windows程序
- c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目
- C/C++ 图像处理(8)------图像の柱面投影算法
- CF621E - Wet Shark and Blocks
- CF621D - Rat Kwesh and Cheese
- CF621C - Wet Shark and Flowers
- CF621A - Wet Shark and Odd and Even
- C++编译时的类型推导
- C++9
- 【C++探索之旅】第一部分第八课:传值引用,文件源头
- 【C++探索之旅】第一部分第八课:传值引用,文件源头