作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
//A structure to describe a matrix.
typedef struct matrix{
int x, y, size, original_size, *data;
};
//Function to index matrices.
int get(matrix m, int x, int y)
{
return m.data[m.original_size * (m.x + x) + m.y + y];
}
我试图理解此 C 代码中的 m.original_size * (m.x + x) + m.y + y 行。我需要对这一行进行更多阐述,m.data[m.original_size * (m.x + x) + m.y + y]。
我的尝试:Data是一个指针,它指向数组m.data的地址。但后来我在尝试理解该声明的其余部分时感到困惑。特别是 * (m.x + x) + m.y + y。
最佳答案
该结构旨在表示一个矩阵(存储在*data
中)和一个子矩阵,子矩阵定义为从第 m.x 行和第 m.y 列开始。因此,get()
函数实际上是访问子矩阵中的数据,并且x和y索引被转换到它们在原始完整矩阵中的位置。
关于c - 如何用语法理解指向数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32470025/
我是一名优秀的程序员,十分优秀!