【发布时间】:2013-03-15 01:42:46
【问题描述】:
好的,所以我得到了一些非常偏离课程的答案,所以我想我会编辑这篇文章并添加教科书中的注释以清楚起见:
有时,数组中的元素数量可能小于数组的大小。例如,存储学生数据的数组中的元素数量可能会随着学生删除或添加课程而增加或减少。在这种情况下,我们只想处理数组中包含实际数据的组件。要编写处理此类数组的函数,除了将数组声明为形式参数外,我们还要声明另一个形式参数,指定数组中元素的数量,如下面的函数:
void initialize(int list[], int listSize)
{
int count;
for (count = 0; count < listSize; count++)
list[count] = 0;
}
函数initialize的第一个参数是一个任意大小的int数组。调用函数initialize时,实际数组的大小作为函数initialize的第二个参数传递。
好的,现在我发布了包含教科书注释的整个示例,我的困惑是为什么他们将数组设置为零。注释给我的印象是这个函数允许用户使用他们想要的任何大小的数组,因为大小设置为零(我在这里猜)允许用户选择他们想要的任何大小的数组?并且每次都会重置为零,所以如果您下次需要更多或更少的单位,它将默认为零,以便您再次填充?
【问题讨论】:
-
此代码将列表数组中的所有“插槽”初始化为零值。它可用于在重新使用之前初始化数组,以确保旧值保留在原位。大多数编译器将“默认初始化”一个数组(例如,对于整数为零)。
-
您知道,您的函数不将数组作为参数,而是一个指向
int的指针。
标签: c++ arrays parameter-passing