C Tricks(三)—— 以一维数组的形式对二维数组赋值
二维数组的本质仍然是一维线性空间(行序优先)。
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 ⇒ 列
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: Byte类型与各种基础类型之间的相互转化函数总结
- 下一篇: C语言一维数组的定义和引用