今天编写程序时,传递参数是一个二维数组碰到了一个问题:
不能将参数 1 从“int [4][4]”转换为“int **”
int a[4][4]={{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16}};
PrintfMatrix(a,4,4);
void PrintfMatrix(int **numbers,int columns, int rows);
查找资料发现了一些问题:
数组的数组会被改写成“数组的指针”,而不是“指针的指针”:
实参 所匹配的形参
数组的数组 char c[8][10]; char (*)[10]; 数组指针
指针数组 char *c[10]; char **c; 指针的指针
数组指针(行指针) char (*c)[10]; char (*c)[10]; 不改变
指针的指针 char **c; char **c; 不改变