方法一:使用指针二维数组
#include
using namespace std;
int main() {
int m;
int n;
int r;
cout << "运算矩阵A和矩阵B相乘" << endl << endl;
cout << "请输入矩阵A的行数和列数:" << endl << endl;
cout << "矩阵A的行数:";
cin >> m;
cout << "矩阵A的列数:";
cin >> n;
cout << "矩阵B的列数:";
cin >> r;
cout << endl;
//取m的地址赋值给指针x
int *x = &m;
int *y = &n;
int *z = &r;
//把变量m赋值给地址x对应的值,在这里,*x表示在x地址存放的变量值,直接写x表示地址。但在定义的时候不一样,int *x之中,*x就表示的是地址了。
*x = m;
*y = n;
int **a = new int*[*y];
for (int i = 0;i < *x;i++) {
*(a + i) = new int[*x];
}
int **b = new int*[*z];
for (int i = 0;i < *y;i++) {
*(b + i) = new int[*y];
}
int **c = new int*[*z];

这篇博客介绍了两种在C/C++中实现矩阵乘法的方法:一种是使用指针和动态分配内存的二维数组,另一种是直接声明固定大小的二维数组。动态分配内存的方法在处理大矩阵时可能出现野指针问题,而固定大小数组则相对稳定。文中还展示了两种方法的运行效果。
最低0.47元/天 解锁文章
966

被折叠的 条评论
为什么被折叠?



