传递给 C 语言函数时确定数组大小
与 main 函数不同,sizeof() 直接返回数组的大小,将数组传递给函数需要考虑由于数组衰减到指针。
数组衰减为指针
当作为参数传递时,数组衰减为指向其第一个元素的指针。这意味着函数中的表达式 sizeof(some_list) 将给出指针的大小,而不是整个数组的大小。
Sizeof 比率问题
使用计算数组大小的表达式 (sizeof(some_list)/sizeof(*some_list)) 不起作用因为:
无论大小如何,此比率始终结果为 1数组大小。因此,函数 length_of_array 始终返回 1。
使用模板的替代方法
要在传递给函数时准确确定数组的大小,请使用模板:
template<size_t N> int length_of_array(int (&arr)[N]) { return N; }
这种方法使用模板参数 N 来指定数组的大小,然后由功能。
以上是如何确定传递给 C 函数的数组的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!