You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中如何通过指针遍历二维数组元素并实现矩阵加法

实现原理

C 语言中的二维数组采用行优先的连续内存存储规则,你定义的 2×2 矩阵所有元素会在内存中按顺序紧密排列,不存在分段,因此只要拿到首元素的指针,直接按总元素个数偏移指针就能遍历全部元素,不需要额外处理行、列的二维结构。

函数实现

按照你给出的函数定义格式,固定适配 2×2 矩阵的实现代码如下:

void D2Add(const double* a, double* b) {
    // 2×2 矩阵总计4个元素,循环4次遍历所有位置
    for (int i = 0; i < 4; i++) {
        // 指针偏移i个单位,将A矩阵对应元素加到B矩阵的相同位置
        *(b + i) += *(a + i);
    }
}
调用方法

你完成初始化后直接调用函数即可,运行后B矩阵会直接存储A+B的结果:

const double A[2][2]={{1,2},{3,4}};
double B[2][2]={{4,3},{2,1}};
const double* a=*A;
double* b=*B;

// 调用加法函数
D2Add(a, b);
通用扩展(支持任意尺寸矩阵)

如果需要函数适配不同行列数的矩阵,可以补充行列数作为入参,修改后更灵活的实现如下:

void D2Add(const double* a, double* b, int rows, int cols) {
    int total_ele = rows * cols;
    for (int i = 0; i < total_ele; i++) {
        *(b + i) += *(a + i);
    }
}
// 2×2 矩阵调用示例:D2Add(a, b, 2, 2);

内容的提问来源于stack exchange,提问作者Chrsi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:45:03