我曾经看过代码(来自显然足够可靠的源代码,让我记住它),似乎传达了数组的长度,同时传递它们的功能(参见下面的示例):
void foo(int [m][n] array)
{
//m and n are the rows and columns of the array
//code
}
然而,我无法找到这个来源,并开始怀疑我是否弄错了,也许,甚至想象它?有人可以评论吗?
答案 0 :(得分:6)
如果您通过引用接受数组,则可以使用模板从参数中推导静态大小:
template<std::size_t X, std::size_t Y>
void print(int(&array)[X][Y])
{
for(std::size_t x = 0; x < X; ++x)
{
for(std::size_t y = 0; y < Y; ++y)
std::cout << ' ' << array[x][y];
std::cout << '\n';
}
}
int main()
{
int array[][3] = {{1, 3, 5}, {2, 4, 6}};
print(array);
}
<强>输出:强>
1 3 5
2 4 6
答案 1 :(得分:1)
在C ++中你可以做到
void foo(int array[m][n])
只要m
和n
都是整数常量表达式。 m
将被忽略,而n
将影响参数类型。以上相当于
void foo(int array[][n])
void foo(int (*array)[n])
这是否与您所看到的相似 - 只有您可以知道。
答案 2 :(得分:0)
上一行是否如下所示?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="imgFrame">
<div class="imgclick">
<img style="margin: 0 auto;display: table;" src="" alt="" title="" class="">
<div class="imgclicktext" style=""></div>
</div>
</div>
<div class="image" data-content="Not so sweet but ok!">
<img style="margin: 0px auto;display: table;" src="https://upload.wikimedia.org/wikipedia/commons/f/f5/Howlsnow.jpg" alt="Not so sweet but ok!" title="Hottie">
</div>
编译器将为每个使用的数组大小创建一个唯一命名的函数版本。