#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TRUE 1
#define FALSE 0
int
find_str(char **str, char* values)
{
// 用来处理内部的
char* temp = NULL;
while (*str != NULL)
{
temp = *str;
while ( *temp!= '\0')
{
printf("before: %c\r\n", *temp);
if (*temp == *values)
{
return TRUE;
}
temp++;
}
str++;
}
return FALSE;
}
void
find_str_2DArray(char (*arr)[6],int rows,char* values)
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < 6; j++)
{
printf("%c\r\n", arr[i][j]);
}
}
}
int main()
{
/*
测试总结:
如果函数要求传递的是一个二维的数组,func( int (*arr)[col],int row);
这样的,那么在使用的过程中, 一定要使用 int temp[2][3]={{1,2,3},{1,2,3}};
如果函数要求传递的一个指针的指针, func(int** arr, int row);
这样的,那么在使用的过程中, 一定要使用,init *name[] = {};
如果传递了上一个二维数组 ,则会出现不可预料的事。
特别注意函数的声明和参数的传递。
*/
char *name[] = { "zhang","chao","wang" };
char last[][6] = { "zhang","chao","wang" };
char* _str = "o";
int res = 0;
res = find_str(name, _str);
printf("result : %d\r\n", res);
find_str_2DArray(last, 3, "a");
return 0;
}
记录:
该部分代码的问题在于,使用者在不阅读代码的情况不, 不知道需要传递一个什么样的参数进来 ,
正常如果内部需要一个二维 的数组 的时候 ,参数都 是 fun(char (arr*)[5],int row)
很明确的传递给使用者一个信息, 就 是, 必须要用一个二维的数组 。