#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)測試
很明確的傳遞給使用者一個信息, 就 是, 必需要用一個二維的數組 。指針