gpt4 book ai didi

c - 将数组传递给另一个 C 函数是如何工作的?

转载 作者:行者123 更新时间:2023-12-02 21:28:06 24 4
gpt4 key购买 nike

这给我带来了很大的困惑。

如果我有以下数组:

int arr[6];
// I then fill indices 0-5 with ints

我想将其传递给使用数组作为参数的函数,函数头是什么样的?

void saveArray(int *arr)还是void saveArray(int arr)?那么我该如何调用这个函数呢? saveArray(arr)saveArray(&arr)

据我了解,虽然初始数组不是指针,但它实际上充当一个指针,因为它衰减为指向第一个元素的指针。所以我的直觉是我应该像 saveArray(arr) 一样传递它,并且 header 应该是 void saveArray(int *arr)。这样可以吗?

为什么我需要一个指向初始数组的指针而不仅仅是数组本身? &arr 到底代表什么?

最佳答案

在 C 语言中,函数中传递的参数只能按值传递。

除此之外,在 C 中,您不能将数组作为参数传递给函数。但是,您可以按值传递指向数组第一个单元格的指针。

因此,您的函数的原型(prototype)将是:

void saveArray(int *arr)

您调用电话的方式

saveArray(arr);

关于c - 将数组传递给另一个 C 函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23018366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com