【发布时间】:2015-09-20 04:13:22
【问题描述】:
这个代码应该是动态创建一个二维数组。但无法理解它的头部或尾部。如果有人可以逐步解释这段代码的作用,那将是一个很大的帮助。帮助表示赞赏!
#include<iostream.h>
class matrix{
int **p;
int d1, d2;
public:
matrix(int x, int y);
void get_element(int i, int j, int value){ p[i][j]=value; }
int &put_element(int i,int j) { return p[i][j]; }
};
matrix::matrix(int x, int y){
d1 = x;
d2 = y;
p = new int *[d1];
for(int i = 0; i < d1; i++) p[i] = new int[d2];
}
int main(){
int m, n;
cout << "enter size of matrix:";
cin >> m >> n;
matrix A(m, n);
cout << "enter matrix elements row by row\n";
int i, j, value;
for(i = 0; i < m; i++)
for(j = 0; j < n; j++){
cin >> value;
A.get_element(i, j, value);
}
cout << "\n";
cout << "A.put_element(1, 2);
return 0;
};
【问题讨论】:
-
理解代码的第一步是让它更“人类可读”:缩进它,在已知和未知的段上添加 cmets,等等。
-
@Ziezi 感谢您的提示!以后会实施的。
标签: c++ arrays pointers matrix