[筆記]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