这个矩阵的参考是什么?

时间:2015-01-23 02:08:05

标签: c++ c matrix

我获得了以下代码作为练习的一部分。我被指示创建一个3x3矩阵并为其指定特定值。

以下是代码:

void minput(int* m, int row, int col) {
/* assign 3X3 matrix to following value 
     8     1     6
     3     5     7
     4     9     2
*/
    *(m+0) = 8;
}

我想弄清楚的是这段代码*(m+0) = 8;的用途。我知道在任何变量前添加*意味着“给我任何地址”。

+0做什么?

3 个答案:

答案 0 :(得分:4)

*(m+0)相当于m[0]。因此,整个陈述是将8分配给m[0]

答案 1 :(得分:2)

它取消引用m(给你它的值)我猜测它是+ 0,这样你就可以添加不同的值并得到矩阵的结果部分

数组在内存中是连续的,所以如果你要添加1而不是0,你可以将矩阵中的下一个值设置为8。

答案 2 :(得分:1)

*(m+0) = 8m[0] = 8相同,它取消引用指向第一个元素的指针,然后为其赋值8。在您的代码中,您通过一维数组表示矩阵,因此您可能希望将(i,j)组件编入索引 m+i*col + j或等同于m[i*col+j],即

*(m+i*col+j) = x // can also write is as m[i*col+j] = x

x分配给(i,j)组件。