寻找有关函数定义和原型中的数组引用的说明

时间:2013-10-06 23:59:29

标签: c++ arrays

我认为要修改另一个函数中的数组我需要在函数定义中将参数声明为引用:

bool sortInput(ifstream &infile, StudentType (&students)[MAXSIZE], int size)

我宣布原型相似,因为它不会正确编译:

bool sortInput(ifstream &, StudentType (&students)[MAXSIZE], int);

然而,这似乎并没有将数组作为参考传递。我调用了一个不同的函数,它没有看到任何变化(它只是打印数组但没有打印任何内容)。我知道数组已被修改,因为在原始函数中打印它显示所有的更改,它们似乎不会延续到全局数组变量并保持在修改它的函数范围内,尽管它是作为参考传递。

我已经阅读了无数其他线程和谷歌搜索,所以我很确定函数定义是正确的,但它没有说明原型的正确形式。

2 个答案:

答案 0 :(得分:1)

数组已作为指针传递,因此您可以修改其内容。不需要添加&

答案 1 :(得分:1)

您不必通过引用传递数组,因为它作为指针传递。通过尺寸。在排序函数中,可变大小的副本被修改,但在主函数中它总是为零。