如何访问和比较数据?

时间:2013-10-13 21:58:01

标签: c++ arrays pointers matrix

我创建了一个带指针指针的矩阵。

int** matrix = new int*[5];
for(int i = 0; i < 5; i++)
    matrix[i] = new int[5];

如果我假设正确,它的作用是创建一个名为matrix的指针,指向一个指针数组,并且数组中的每个指针指向一个整数数组,该数组的项由整数类型数据组成。 我用这种方式写了数字:

for(int i = 0; i < 5; i++)
    for(int j = 0; j < 5; j++)
        matrix[i][j] = 6 + j;

这就是我的问题:当我尝试比较矩阵中的项目时,if语句不会比较矩阵中存储的数据,但会比较项目的内存地址。

if(matrix[i][0] == matrix[i][j])

我该如何解决这个问题?我尝试了很多不同的东西,但迄今为止都没有。提前谢谢!

1 个答案:

答案 0 :(得分:2)

您无法进一步取消引用,因为matrix[i][j]会解析为矩阵内的实际值(整数)。

我测试了这段代码:

cout << "Value of matrix[0][0]: " << matrix[0][0] << endl;
cout << "Pointer to matrix[0][0]: " << &matrix[0][0] << endl;

哪位给了我:

Value of matrix[0][0]: 6
Pointer to matrix[0][0]: 0x1705040