老师,这样计算数组长度为什么不对?
来源:2-1 选择排序法 - Selection Sort
邹正霖
2020-10-25
我想不传入数组长度,直接在函数里计算,用了以下代码计算
int len = sizeof(arr) / sizeof(arr[0]);
结果是错误的,这是为什么?
能否解答下,谢谢。
写回答
1回答
-
liuyubobobo
2020-10-26
不正确,因为 arr 作为函数的参数,就是一个指针,所以 sizeof(arr) 就是这个指针的大小,而不是这个指针指向的空间大小。
传入数组同时传入长度是标准的 C 语言的处理方式;如果想使用 C++ 的方式,应该使用 vector 类,但本质其实也是将长度这一信息放在了 vector 类中,打包传给了函数。
继续加油!:)
122020-10-30
相似问题