[英]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.