在C语言中,首先来对函数的返回值来温习一下:
函数调用使主调函数得到一个确定的值,这就是函数的返回值。函数的返回值是通过return 语句获得的。
那我们来提一个这样的问题,如果是一个数组通过排序后,得到了一个新的数组,怎么把这个数组的值返回回去呢?
事实上我们可以来先试一下:
举个例子:
(1)
上面这个例子,是运用单个的数组元素进行叠加,然后返回,返回值用的是r[i],就是具体的数组元素,这里我们想应该是可以的,因为r[i]就是指定了某个数组元素,这和返回一个变量的性质是一样的。调试及运行结果如下:
(2)把r[i]---->r
这地方其实就是指的直接返回一个数组名可以不可以?
我们来看下调试以及运行结果:
发现虽然调试通过了,运行也没有问题,但是有警告,大致的意思呢涉及到了指针。此时我们思考一下,是不是指的运用指针返回显得更加的”科学“一点呢?
(3)返回指向数组的指针
调试以及运行结果:
问题来了:数组指针作为返回值毫无问题,具体的某个数组元素作为返回值也肯定没有问题,用数组名作为返回值,虽然得到了结果,但是提出了警告。
我们可以这么得出结论:当一个数组要返回时,根据具体的情况,可以用数组指针或者数组元素作为返回值。
那。。。。。。数组名呢?
其实严格意义上来说,返回数组名也是没有问题的,因为返回的数组名是一个地址。当然在C语言中涉及到数组返回值的时候还是喜欢讨论下返回指针值的函数。