这感觉像是一个非常愚蠢的问题,但我有个正在上编程课的人向我求助他的一项任务,我在他的代码中看到了这样的东西(请勿对匈牙利命名法进行评价):
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++没有本地方法知道传递给它的数组的大小(即使我认为最新的规范可能已经改变了这一点)。
void func(int (&myarr)[25]);
,大小不为25的数组将被拒绝。GCC的错误消息是:error: invalid initialization of reference of type 'int (&)[25]' from expression of type 'int [3]'
。 - v.oddou