您的位置:首页 > 编程语言 > C语言/C++

C语言中二维数组的问题

2015-12-08 22:22 309 查看
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.二维数组表示矩阵时实现矩阵的转置代码如下:
#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;}
缺点:实现转置较慢有点:便于理解改进:可利用指针进行矩阵转置的快速转换
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: