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;}
缺点:实现转置较慢
有点:便于理解
改进:可利用指针进行矩阵转置的快速转换