C++允许形参是数组的引用,此时,引用形参绑定到对应的实参上,也就是数组。
void print(int (&arr)[10]) {
for (auto i:arr) {
cout << i << endl;
}
}
需要保证的是:实参必须是含有10个整数的数组。
一种更清晰的写法:
typedef int arrTen[10];
void print(arrTen &arr) {
for (auto i:arr) {
cout << i << endl;
}
}
模板写法:
template <typename T, size_t N>
size_t get_count(T (&arr)[N]) {
return sizeof(arr)/sizeof(T);
}
int main(int argc, char **argv) {
int arr[5] = {1,2,3,4,5};
cout << get_count(arr);
return 0;
}