我目前正在学习C函数如何能够接受多维数组,方法是遵循一书中的处理方法。
在这本书中,作者提到处理多维数组的函数可以声明为.
虚函数( int (* pt)4 );
或者,如果(并且只有当) pt是函数的正式参数,则可以如下所示:
虚函数( int );
我理解在C中,传递给函数的数组将衰减为指向相应类型的指针。因此,pt in int pt[][4]将衰减为int (* pt)[4],这是一个指向4 ints数组的指针。
但我不明白为什么这种行为只有在‘pt是函数的一个形式参数’时才会发生。这意味着什么?为什么会这样?