首页 > 应用开发 > IT综合 > 【C++】函数返回数据指针的多种定义方式
int *p=(*arrs);
for(int i=0;i<a_size;i++){std::cout<<i<<std::endl;</i<<std::endl;<>*p=i;p++;//(*arrs)++会报lvalue required as increment operand错误,因为(*arrs)不是一个左值//*(*arrs)=i;//(*arrs)++;}return arrs;}//*functions1(int (*p)[10],size_t a_size)表示可以对函数调用结果解引用,//(*functions1(int (*p)[10],size_t a_size))[10]表示解引用调用函数结果之后,得到一个大小为10的数组int (*functions1(int (*p)[10],size_t a_size))[10]{int *q=(*p);for(int i=0;i<a_size;i++){</a_size;i++){<>*q=i;q++;}return p;}//C++11标准auto function2(int (*p)[10],size_t a_size)->int(*)[10]{int *q=(*p);for(int i=0;i<a_size;i++){</a_size;i++){<>*q=i;q++;}return p;}int main(){int (*p)[10];int (*q)[10];int (*h)[10];int arrs[]={1,2,3,4,5,0,0,0,0,0};//不能是p=functions(arrs,10),因为是函数需要传一个数组指针而不是首地址指针p=functions(&arrs,10);q=functions1(&arrs,10);h=function2(&arrs,10);for(auto c:(*p)){std::cout<<c<<std::endl;</c<<}for(auto c:(*q)){std::cout<<c<<std::endl;</c<<}for(auto c:(*h)){std::cout<<c<<std::endl;</c<<}} </a_size;i++){<>
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30221425/viewspace-2142728/ ,如需转载,请注明出处,否则将追究法律责任。