C语言中关于二维数组的处理:
1.判断二维数组行列的长度
方法一:
程序员在编写二维数组时直接定义二维数组行列的长度,建议利用宏定义对二维数组行列的长度进行定义,方便在以后对程序维护时进行更改。
方法二:
利用sizeof函数获取数组行列的长度。例如定义一个二维数组:arraryTest[2][3];
arrary[2][3];
sizeof(arrary); /*整个数组的长度*/
sizeof(arrary[0]); /*数组一行元素所占的空间,即列数*/
sizeof(arrary)/sizeof(arrary[0]) /*数组的行数*/
sizeof(arrary[0][0]); /*数组中每个元素的长度大小*/sizeof(arrary[0])/sizeof(arrary[0][0]) /*也可用此方法求得行数*/
2.二维数组表示矩阵时实现矩阵的转置代码如下:</p><pre class="cpp" name="code">#include <stdio.h>
int main(void)
{
int arrary[2][3] = { 1,2,3,4,5,6 };
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
if (j == 2)
{
printf("a[%d][%d] = %d \n", i, j, arrary[i][j]);
}
else
{
printf("a[%d][%d] = %d ", i, j, arrary[i][j]);
}
}
}
int arraryAfter[3][2];
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
arraryAfter[j][i] = arrary[i][j];
}
}
printf("矩阵转置后的形式为:\n");
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
if (j == 1)
{
printf("a[%d][%d] = %d \n", i, j, arraryAfter[i][j]);
}
else
{
printf("a[%d][%d] = %d ", i, j, arraryAfter[i][j]);
}
}
}
return 0;
}
缺点:实现转置较慢
有点:便于理解
改进:可利用指针进行矩阵转置的快速转换
本文探讨了C语言中处理二维数组的方法,包括如何判断二维数组的行列长度,通过宏定义和sizeof函数的方式,并提到了利用指针进行矩阵转置的优化技巧。
3万+

被折叠的 条评论
为什么被折叠?



