我创建了一个带指针指针的矩阵。
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])
我该如何解决这个问题?我尝试了很多不同的东西,但迄今为止都没有。提前谢谢!
答案 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