int(&func())5是一个函数返回类型为int(&)5的函数声明,表示func函数返回一个长度为5的int数组的引用。
int(func())5是一个函数返回类型为int()5的函数声明,表示func函数返回一个指向长度为5的int数组的指针。
两者的区别在于返回类型不同,前者返回的是数组的引用,后者返回的是数组的指针。
在C++中,数组的引用是合法的,可以通过引用来访问数组的元素。而数组的指针只是指向数组的首地址,需要通过解引用操作符*来访问数组的元素。
因此,int(&func())5是有效的,可以用于声明一个返回数组引用的函数。而int(*func())5是无效的,因为返回的是数组指针,无法直接访问数组的元素。
示例代码:
#include <iostream>
int arr[5] = {1, 2, 3, 4, 5};
int(&func())[5] {
return arr;
}
int main() {
int(&ref)[5] = func();
for (int i = 0; i < 5; i++) {
std::cout << ref[i] << " ";
}
return 0;
}
输出结果为:1 2 3 4 5
领取专属 10元无门槛券
手把手带您无忧上云