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

Why can you pass an array as a pointer?

本文关键字:指针 数组 为什么      更新时间:2023-10-16

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

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

因为不可能确定myArraymyFunction中的长度,所以这不是不起作用吗?

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

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]));
}