在 C++ 中通过引用传递数组
Passing array by reference in C++
这听起来可能是一个非常基本的问题,但是我对理解这段代码几乎没有混淆:
所以我有一个接受参数的函数:const char * str1
现在传递的参数定义为:const char (&str1)[5]
如果您能详细说明一下字符指针数组是如何在第二行中定义的,我将不胜感激?
编辑:
template<unsigned N, unsigned M>
int compare(const char (&p1)[N], const char (&p2)[M]){
return strcmp(p1,p2);
}
我试图理解这里如何定义本质上转换为字符串的非类型参数
没有什么是"本质上翻译"。函数模板需要使用两个数组参数进行调用。
char s[] = { 'a', 0, 'c' };
compare(s, "xyz"); // first argument "s" is a named array, N = 3
// second argument is a string literal, M = 4
您可以对任何数组使用相同的模式,但类字符数组的特殊好处是您可以拥有字符串文本形式的文本数组。
相关文章:
- 通过指针与数组引用扩展数组索引序列
- 将链表的内容放在数组引用中
- 是否允许使用初始值设定项列表将const数组引用实例化为构造函数参数
- C 在将数组引用分配给struct时麻烦
- Typedef数组引用
- 通过强制转换创建子数组引用
- 将数组引用 'T(&)[n]' 引用到 'std::array<T, n>' 的内容
- constexpr 数组引用参数
- 寻找有关函数定义和原型中数组引用的说明
- Initializer_list作为非模板上下文中数组引用参数的参数
- 如何使用一个动态创建的一维数组的二维数组引用仅与标准库?
- 如何返回具有大小的POD数组引用
- 在C++中返回数组引用的语法
- 是否可以声明转换函数返回数组引用而不使用typedef
- 自定义到数组引用的转换
- 类数组引用的NullReferenceException
- 数组指针与数组引用之间的差异
- 在c++中传递数组引用
- 使用特征矩阵作为特征数组引用的参数
- 如何从函数传递数组引用