C数组参数名称

时间:2014-08-17 03:13:03

标签: c arrays multidimensional-array

我刚看到一个带有以下签名的函数:

bool insert( Node** root, int (*M)[COL], int row, int col )

在这种情况下COL会做什么?

1 个答案:

答案 0 :(得分:2)

这是数组大小。 COL在代码中的某处是#defined ...假设COL定义为5,你应该提供一个指向5个整数数组的指针。任何其他维度都会导致编译器错误。

例如。

#define COL 5
...
..
..

bool insert( Node** root, int (*M)[COL], int row, int col ) {

..
return 1;
}

...

和用法(在这种情况下):

int test[5] = {0}; 
... 
insert(&node, &test, 0, 0);

将编译并:

int test[10] = {0};
...
insert(&node, &test, 0, 0); 

不会编译......