繁体   English   中英

在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

您可以对任何数组使用相同的模式,但是类似char的数组的特殊好处是您可以使用字符串文字形式的文字数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM