一,一般方法
char a[][10] = {"sat", "sun", "mon", "tue"} ;
function(a);
void function(char a[][10])
{
for(int i = 0 ;i < 4; i++)
{
printf(" %s /n", a[i]);
printf(" %c /n", a[i][2]); // 每行输出最后一个元素
}
}
二,动态数组
三,行数列数作参数,数组看成一维数组
char a[][10] = {"sat", "sun", "mon", "tue"} ;
fun(&a[0][0],4,10);
void fun(char *p,int m,int n)
{
printf("%c",p[i*n+j]);
}
四,
char a[][10] = {"sat", "sun", "mon", "tue"} ;
char *p[] = {*a, *(a+1), *(a+2), *(a+3)} ;
function2(p);
function3(a);
void function2(char *p[])
{
for(int i = 0; i < 4; i++)
{
printf(" %c /n", *(*p +2)); // 每行输出最后一个元素
printf(" %s /n", *p++);
}
}
void function3(char (*p)[10])
{
for(int i = 0; i < 4; i++)
{
printf(" %s /n", *p++);
printf(" %c /n", *(*p +2)); // 每行输出最后一个元素
}
}
function3(a);
void function2(char *p[])
{
for(int i = 0; i < 4; i++)
{
printf(" %c /n", *(*p +2)); // 每行输出最后一个元素
printf(" %s /n", *p++);
}
}
void function3(char (*p)[10])
{
for(int i = 0; i < 4; i++)
{
printf(" %s /n", *p++);
printf(" %c /n", *(*p +2)); // 每行输出最后一个元素
}
}