之前我们在声明函数的时候最前面的必然是函数的返回值类型,如:
int sum(int a,int b);
对于返回值简单的函数来说这样做比较直观清晰,但是当返回值复杂的时候,这种方式就显得不那么直观了:
int (*func(int i))[10];
这个函数的返回值类型是什么呢?就需要从内而外,抽丝剥茧了:
func(int i)//func函数的形参为int类
(*func(int i))//对func函数调用结果进行解引用
(*func(int i))[10] //调用func函数解引用后得到大小为10的数组
int (*func(int i))[10]//数组中的类型为int型
明显这样的声明方式不是很直观,我们就可以使用尾置返回类型:
auto func(int i) -> int(*)[10];
使用auto替换原来的返回类型,在后面使用->返回类型,这样我们可以清晰的知道返回值为指向了10个元素的int型数组。