请谁告诉我那句话原话是啥(关键词-数组)

之前看到一个人说过,函数不能传递数组进去?但看了很多文章,是可以传递数组的,应该是我记错了吧?我现在就像知道,那句话到底是什么,好像是跟数组有关,但是不能用数组之类的,好像是某个东西不能用数组,请谁告诉我那句话原话是啥?

“Devil组”引证GPT后的撰写:

  • 通常情况下,在C++中是可以将数组作为函数参数进行传递的。但是,有一种情况下数组不能直接作为参数传递,那就是当数组名作为参数传递时,它会被自动转换为指向数组第一个元素的指针。
  • 因此,如果你想传递整个数组,你需要传递数组的指针,并且需要将数组的大小作为另一个参数传递。

下面是一个例子:

void printArray(int *arr, int size) {
    for (int i = 0; i < size; i++) {
        cout << arr[i] << " ";
    }
}

int main() {
    int myArray[3] = {1, 2, 3};
    printArray(myArray, 3);
    return 0;
}


将一个整型数组作为函数参数传递。在函数内部,我们使用指针来访问数组元素,同时传递了数组的大小。

  • 可能有人会说“数组名就是指向数组第一个元素的指针啊,为什么要多此一举?”确实,这个说法是正确的。但是,在某些情况下,将数组名作为参数传递并不太方便。比如,如果你要传递一个二维数组,你需要在函数中指定每个维度的大小,而这样的代码会变得非常冗长。因此,将数组的指针和大小分开传递是一个更好的选择。

C 语言函数参数只能传指针,不能传数组。是这句话吗?