我创建了一个带有指向指针的矩阵。
int** matrix = new int*[5];
for(int i = 0; i < 5; i++)
matrix[i] = new int[5];
如果我假设正确,它所做的是创建一个名为矩阵的指针,它指向一个指针数组,数组中的每个指针都指向一个整数数组,该数组的项由整数类型数据组成。 我是这样写数字的:
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])
我该如何解决这个问题?我尝试了很多不同的东西,但到目前为止都没有奏效。提前致谢!
最佳答案
您不能再取消引用,因为 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
关于c++ - 如何获取和比较数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19350767/