相关疑难解决方法(0)

在C++中传递对数组的引用

任何人都可以帮助我理解以下代码

#include <iostream>

void foo(const char * c)
{
   std::cout << "const char *" << std::endl;
}

template <size_t N>
void foo(const char (&t) [N])
{
   std::cout << "array ref" << std::endl;
   std::cout << sizeof(t) << std::endl;
}

int main()
{
    const char t[34] = {'1'};
    foo(t);

    char d[34] = {'1'};
    foo(d);
}
Run Code Online (Sandbox Code Playgroud)

输出是

const char *
array ref
34
Run Code Online (Sandbox Code Playgroud)

为什么第一个foo调用const char *版本?如何让它调用参考版本?

c++

35
推荐指数
2
解决办法
4548
查看次数

标签 统计

c++ ×1