Tag: 大小

如何可靠地获得C型arrays的大小?

如何可靠地获得C风格数组的大小? 通常建议的方法似乎是使用sizeof ,但它在foo函数中不起作用,其中x被传入: #include void foo(int x[]) { std::cerr << (sizeof(x) / sizeof(int)); // 2 } int main(){ int x[] = {1,2,3,4,5}; std::cerr << (sizeof(x) / sizeof(int)); // 5 foo(x); return 0; } 这个问题的答案推荐sizeof但他们并没有说它(显然?)如果你传递数组不起作用。 那么,我是否必须使用哨兵? (我不认为我的foo函数的用户总是可以信任最后放一个标记。当然,我可以使用std::vector ,但是我没有得到漂亮的速记语法{1,2,3,4,5} 。)