为什么执行顺序错误(赋值和cout)?

时间:2017-05-26 00:09:58

标签: c++

我是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。 有人可以解释一下吗?

0 个答案:

没有答案