为什么可以将数组作为指针传递?

时间:2016-11-03 23:12:00

标签: c++ arrays

我正在阅读http://www.tutorialspoint.com/cplusplus/cpp_passing_arrays_to_functions.htm,它建议将数组传递给函数的第一个方法是将它作为指针传递:

void myFunction(int *myArray) {
   .
   .
   .
}

这不起作用,因为无法确定myArraymyFunction的长度吗?

1 个答案:

答案 0 :(得分:3)

通常的惯例是为数组长度传递一个单独的参数。

void myFunction(int* myArray, int length) {
   for (int index = 0; index < length; ++index) {
      // ... do something with each array item ...
   }
}

void caller() {
    int array[10];
    // ... put some useful values in the array ...
    myFunction(array, sizeof(array) / sizeof(array[0]));
}