我有一个声明如下的函数:
int myFunc(int const (* const p_Matrix)[5][5]);
我将指向矩阵的指针传递给函数,该指针为const,它指向const数据
当我称呼它时,我将执行以下操作:
int X = 0;
int Matrix[5][5];
// fill Matrix with some values
X = myFunc(&Matrix);
问题是我在编译时收到以下警告:
注意:预期为'const int(* const)[5] [5]',但参数的类型为 'int(*)[5] [5]'
只有在使用eclipse时才会收到此警告,但是在Visual Studio 2017中却没有得到此警告
我对编译器的工作原理并不了解,但我可以肯定我的语法是正确的。
有人可以解释一下问题是什么以及如何摆脱警告。
非常感谢
编辑: 当我删除第一个const时,警告消失了。我不知道背后的原因。