'char(&)[13]'是什么意思?

时间:2017-09-30 08:19:11

标签: c++ c++11

作为一名老c ++程序员,我最近在学习c ++ 11。阅读 Effective Mordern C ++ 时,我找到了有趣的类型:

char (&) [13]

将数组传递给需要T&:

的函数模板时
template<typename T>
void funcTemplate1(T& param)
{
    std::cout << boost::typeindex::type_id_with_cvr<T>().pretty_name() << std::endl;
}
void main()
{
    char szHello[] = "Hello, World";
    funcTemplate1(szHello);
}

输出:

char (&) [13]

从未见过。什么意思?

1 个答案:

答案 0 :(得分:8)

如果我们插入丢失的函数参数名称,它将变为:

char (&param) [13]

你无疑对此很熟悉:

char param[13]

当然是13个字符的数组。添加&表示它是对它的引用。括号是必需的,因为它是对数组的引用,而不是引用数组。