[笔记]C++声明返回数组指针的函数


  数组指针的声明:type (*name)[size];

  由于数组不能拷贝,所以函数不能返回数组。但是函数可以返回指针和引用,所以函数可以返回数组指针或引用。

  和数组指针的声明类似:

    type (*funName(parameter_list))[dimension];

//例
int
p[10]; int (*arr)[10]=&p; //数组指针arr int (*function(int *list))[10] { return arr; //返回数组指针 }

  依据由内向外的原则来分析,function首先是一个函数,其参数是int *,其返回类型是指针,指针的类型是大小为10的整型数组。

  使用尾置返回类型可以声明

auto function_1(int *list) -> int (*)[10]   // ->指定函数返回类型为数组指针
{
    return arr;
}

  使用decltype类型推断来声明

decltype(arr) function_2(int *list) //decltype根据arr推断出返回类型为指针数组
{
    return arr;
}

   定义返回数组指针的函数的指针

int (*(*pfunc)(int *list))[10] = &function; 

//函数指针数组
int (*(*arryfunc[10])(int *))[10]={&function, NULL};

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM