一、 二维数组
1> 初始化
int a[3][3] = { {1,0,0}, {0,1,0}, {0,0,1} }; // 这里是 {} , 而不是()
2> 将二维数组当做一维数组处理
void print_array( int * p, int row, int line)
{
for(int i=0; i<row; ++i)
{
for(int j=0; j<line; ++j)
{
printf("%d \n", *( p + i * row + j ) ); // 相当于 *( *(p+i) + j ); // p[i][j]
}
}
}
// 调用
print_array( (int *)a, 3, 3 );
3> 二维数组当二维数组使用
void WordSort(char p[][10], int row)
{
char temp[10];
for(int n=0; n<row; ++n)
{
for(int m=n+1; m<row; ++m)
{
// 冒泡排序
if ( strcmp(p[m], p[n] ) < 0 )
{
strcpy(temp, p[n]);
strcpy(p[n], p[m]);
strcpy(p[m], temp);
}
}
}
for(int n=0; n<row; ++n)
{
printf("%s \n", p[n]);
}
}
// 调用
char p[5][10] = {"hello","world","111","135","134"};
WordSort(p, 5);
4> 行指针(二维数组作为形参的参数传递)