C++中函数能不能返回数组?
记得几个月前老师第一次问我这个问题的时候,我回答的比较仓促----不能。
当时比较渣(当然现在也渣),最近时间较多我就仔细研究了一下。。。。。。
后来我对这个问题的回答是----严格来说是不能的。
一同学启发下,可以让函数返回指向某数组的指针。
然后我就试了一下,代码如下。
代码只有30行,就是通过一个函数创建一个数组,然后将数组首地址返回,然后根据这个地址去寻址,并将数组里的内容打印到屏幕上。
这是运行结果
这里主要的问题就是这个fun函数,大家看到return temp;
肯定想问temp不是数组吗,你这不是返回了数组吗?
函数虽然不能返回一个数组,但是可以返回指针也就是地址,返回值是指针的函数要在前加*,就如图中int *fun(){};
对于一个变量来说,比如n=3,如果返回n的地址要用return &n;//&为取地址符号
但是对于一个数组和字符串来说,比如temp[10],数组名和串名temp就是地址。//不需要使用&
所以return temp;不是返回数组只是返回地址指针。
然后我们便可以根据这个地址去寻址,依次打印了!
虽然函数不能直接的返回一个数组,但是可以通过指针间接的完成!
其实指针的功能较为强大,待我仔细研究,下期介绍指针。
感谢阅读。