int bin_ find(int (*p) [22] ,int num) ]{ int len = sizeof (*p) /sizeof((*p) [0]) ;解释
时间: 2023-08-15 16:08:55 浏览: 77
这段代码定义了一个名为 `bin_find` 的函数,它接受两个参数:一个指向二维数组的指针 `p`,和一个待查找的整数 `num`。函数返回值类型为 `int`。
这里的 `int (*p)[22]` 表示一个指向具有 22 列的整型二维数组的指针。需要注意的是,这里的 `22` 是一个固定的常量,它表示二维数组的列数。所以,这个函数只适用于列数为 22 的二维数组。
函数体中的代码先计算二维数组的长度 `len`。这里的 `sizeof(*p)` 表示指针所指向的二维数组的总长度,`sizeof((*p)[0])` 表示二维数组中第一行的长度。因为二维数组是按行存储的,所以这里用第一行的长度来计算整个数组的长度。最后,将总长度除以第一行的长度,即可得到二维数组的行数。
接下来,函数使用二分查找算法在二维数组中查找目标数字。具体实现过程就不展开了,不过需要注意的是,这里的二分查找算法是基于二维数组的一维展开来实现的,需要将二维数组转换为一维数组来进行查找。
阅读全文