0

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

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])

我怎么解决这个问题?我尝试了很多不同的东西,但到目前为止都没有奏效。提前致谢!

4

1 回答 1

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
于 2013-10-13T22:22:37.933 回答