这感觉是一个非常愚蠢的问题,但我有人参加编程课程向我寻求作业方面的帮助,我在他们的代码中看到了这一点(请对匈牙利表示法没有评论):
void read_dictionary( string ar_dictionary[25], int & dictionary_size ) {...
作为一名 C# 程序员(我在大学里学习过 C 和 C++),我什至不知道你能做到这一点。我总是被告知,从那以后我就读到,你应该拥有
void read_dictionary( string ar_dictionary[], int ar_dictionary_size, int & dictionary_size ) {...
我听说教授给了他们这个并且它有效,那么声明这样的固定大小数组意味着什么呢? C++ 没有本地方法来了解传递给它的数组的大小(即使我认为最新规范中可能已更改)
在一维数组中它没有意义,会被编译器忽略。在二维或多维数组中它可能很有用,并且被函数用作确定矩阵(或多维数组)的行长度的方法。例如 :
int 2dArr(int arr[][10]){
return arr[1][2];
}
这个函数会知道地址arr[1][2]
根据指定的长度,并且编译器不应接受此函数的不同大小的数组 -
int arr[30][30];
2dArr(arr);
是不允许的,并且会出现编译器错误(g++):
error: cannot convert int (*)[30] to int (*)[10]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)