C 指針數組

#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)測試

很明確的傳遞給使用者一個信息, 就 是, 必需要用一個二維的數組 。指針

相關文章
相關標籤/搜索