#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)测试
很明确的传递给使用者一个信息, 就 是, 必需要用一个二维的数组 。指针