gpt4 book ai didi

c - 如何将整数数组作为参数传递给函数并修改内容?

转载 作者:太空宇宙 更新时间:2023-11-04 05:17:19 25 4
gpt4 key购买 nike

我试图通过函数修改一个整数数组,但该数组保持其原始值。我试图访问它的值来修改它:

这会产生一个错误:

*array[i] = *array[i] * *array[i];

此示例运行程序但数组将被修改:

int main() {
int array[] = {1, 2, 3, 4, 4, 5, 6};
int size = sizeof(array)/sizeof(int);
square_array_values(&array, size);
}

void square_array_values(int *array, int size) {
int i;
for (i = 0; i < size; i++) {
printf("Array[%d]: %d.\n", i, array[i]);
array[i] = array[i] * array[i];
}
}

最佳答案

对于数组来说,数组名本身就是数组的基址。因此,对于您的示例,您只需将 (array) 发送到函数即可。

由于将数组发送到某个函数会将它们衰减为指针,因此它可以与您的 square_array_values()

实现完美配合

更改为

square_array_values(array, size);

我并不总是这样说,但因为我心情很好。

总是这样

int main(void)

不是

int main()

int main() 表示 main 可以接受任意数量的参数。

关于c - 如何将整数数组作为参数传递给函数并修改内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35231231/

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