C Tricks(三)—— 以一维数组的形式对二维数组赋值

来源:互联网 发布:淘宝助理是免费的吗 编辑:程序博客网 时间:2024/05/24 20:07

二维数组的本质仍然是一维线性空间(行序优先)。

int mat[3][4];int *p = (int *)mat;                        // 将二维数组转换为一维数组
int r = sizeof(mat)/sizeof(mat[0]);int c = sizeof(mat[0])/sizeof(mat[0][0]);int cnt = 0;for (int i = 0; i < r; ++i)    for (int j = 0; j < c; ++j)        p[i*c + j] = cnt ++;                            // i*c ⇒ 行                            // +j ⇒ 列
0 0
原创粉丝点击