C++中函数能不能返回数组?


记得几个月前老师第一次问我这个问题的时候,我回答的比较仓促----不能

当时比较渣(当然现在也渣),最近时间较多我就仔细研究了一下。。。。。。


后来我对这个问题的回答是----严格来说是不能的。


一同学启发下,可以让函数返回指向某数组的指针


然后我就试了一下,代码如下。

关于C++中函数能不能返回数组问题

代码只有30行,就是通过一个函数创建一个数组,然后将数组首地址返回,然后根据这个地址去寻址,并将数组里的内容打印到屏幕上。



这是运行结果


关于C++中函数能不能返回数组问题





关于C++中函数能不能返回数组问题




这里主要的问题就是这个fun函数,大家看到return temp;

肯定想问temp不是数组吗,你这不是返回了数组吗?


函数虽然不能返回一个数组,但是可以返回指针也就是地址,返回值是指针的函数要在前加*,就如图中int *fun(){};


对于一个变量来说,比如n=3,如果返回n的地址要用return &n//&为取地址符号


但是对于一个数组和字符串来说,比如temp[10],数组名和串名temp就是地址。//不需要使用&


所以return temp;不是返回数组只是返回地址指针。


然后我们便可以根据这个地址去寻址,依次打印了!


虽然函数不能直接的返回一个数组,但是可以通过指针间接的完成!


其实指针的功能较为强大,待我仔细研究,下期介绍指针。


感谢阅读。

相关文章: