我是C ++编程的初学者,所以我会尽量准确地描述我的问题。 我有一个2D数组(应该代表一个nxn矩阵),它在* .hpp文件中声明为
double **A;
double **B;
double **C;
在相应的* .cpp文件中将值分配给B和C.之后,A被分配给B via A = B;
我想只将A的第一行更改为C的第一行,并打印出结果,所以我这样做了:
cout << "row 0 of B" << vector<double>(B[0],B[0]+n) << endl;
cout << "row 0 of C" << vector<double>(C[0],C[0]+n) << endl;
cout << "row 0 of A before change" << vector<double>(A[0],A[0]+n) << endl;
A[0] = C[0];
cout << "row 0 of A after change" << vector<double>(A[0],A[0]+n) << endl;
但不知何故,第一个cout给了我与第二个cout相同的结果,尽管值应该是不同的。如果我删除“A [0] = C [0];”,我会得到正确的结果。不知何故,首先完成了任务,然后是cout。 有人可以解释一下吗?