我正在学习将二维数组传递给 C 中的函数,并了解到我可以在函数中接收二维数组,如下所示:
void test(char a[5][10])
void test(char (*a)[10])
上面的声明对我有用,但是在查看**argv
函数 main 的参数时,我想将函数更改为void test(char **a)
. 但这不能正常工作。我不明白为什么。请解释。
这是我的代码
#include<stdio.h>
int main(int argc, char **argv){
char multi[5][10] = {
{'0','0','2','3','4','5','6','7','1','9'},
{'a','b','c','d','e','f','g','h','i','j'},
{'A','B','C','D','E','F','G','H','I','J'},
{'9','8','7','6','5','4','3','2','1','0'},
{'J','I','H','G','F','E','D','C','B','A'}
};
test(multi);
return 0;
}
void test(char (*a)[10]) // void test(char **a) does not work
{
printf("\n a[2][1] is: %d",*(*(a + 2)+1));
}