长度在这句话中的含义是什么:“每个数组都与该数组的”长度“一起传递给函数。”
这是否意味着数组的大小?
答案 0 :(得分:4)
不一定。数组的大小是为其定位的字节数(或者至少知道sizeof(array)
将返回的内容,如果它知道有多少元素数组)数组的长度是数组中元素数。
例如:short arr[10];
其长度为10,但其大小为20(每个短字为两个字节)
答案 1 :(得分:2)
在C中,只是因为你有一个指向数组的指针,并不意味着你知道它的长度(它有多少个条目)。不知何故,你必须知道避免数组索引错误。
只有少数几种方法可以做到这一点:
这个讨论对于C语言来说有点混乱,因为我们倾向于将一般的对话视为将数组长度和数组大小视为同义词。但在C语言中,“大小”具有特定的含义;它是实体占用的存储单元数。它很容易从数组长度计算,有时程序将传递“大小”而不是长度。恕我直言,你应该将数组 length 传递给通过索引来操作数组的函数,因为长度更抽象,更容易理解。