嘿,我有这个功能:
void vdCleanTheArray(int (*Gen_Clean)[25])
{
}
我想知道它接受什么类型的数组并清除它。
抱歉,我对c ++有一点了解,有人问过我。
谢谢!
答案 0 :(得分:2)
它接受一个声明为
的数组int array[25];
应该通过“指针”传递,即通过将&
运算符应用于数组
vdCleanTheArray(&array);
关于如何清理它...据我所知,上面的功能应该清理它,你应该写它,对吧?好吧,在函数内部,您可以使用取消引用运算符*
来访问数组,如
(*Gen_Clean)[i]
你只是“清除”它,因为你会清除任何其他数组。取决于你所说的“清楚”。用零填充?如果是这样,那么只需编写一个从0到24(或sizeof *Gen_Clean / sizeof **Gen_Clean
)的循环,将每个元素设置为零。
答案 1 :(得分:1)
void vdCleanTheArray(int(* Gen_Clean)[25])可以被描述为'一个函数,它指向一个包含25个整数的数组并且什么都不返回。'
假设'clear'表示将所有值设置为0,您可以使用以下内容执行此操作:
for (int i = 0; i < 25; i++) {
(*Gen_Clean)[i] = 0;
}
请注意,在C ++中,无法调整C样式数组的大小。如果需要可调整大小的数组,最好使用std :: vector,如果需要固定大小的数组,最好使用std :: array。
如果你是C ++的新手,你可能不应该是这样的函数。键入第一个参数的方式不是您经常(或应该)在C ++中看到的内容。
对于那些对'int(* Gen_Clean)[25]'语法感到疑惑的人,我认为它的类型是强制传递指针实际指向25个整数的数组,因为通常C ++会降低参数' int * Gen_Clean [25]'指向指向指针,而不是指向数组的指针。