c - 指向矩阵

标签 c arrays pointers matrix

我想声明一个指向矩阵并从矩阵检索回值的指针:

float *p;
float ar[3][3];

[..]//give values to ar[][]

p = ar;

//Keep on printing values in the 3 X 3 matrix
for (int i = 0; i < 10; i++)
{
p = p + i;
cout << *p << ", ";
}

最佳答案

我怀疑你在追求:

p = &ar[0][0];

也可以写成:

p = ar[0];

尽管您的 for 循环需要使用 p = p + 1; 而不是 p = p + i;

<小时/>

如果您希望循环能够按行和列访问矩阵的成员,您还可以使用指向数组的指针:

float (*p)[3];

p = ar;

for (int i = 0; i < 3; i++)
    for (j = 0; j < 3; j++)
    {
        cout << p[i][j] << ", ";
    }

关于c - 指向矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7898849/

相关文章:

c - 程序完成后如何在其他电脑上使用?

c - 在 C 函数原型(prototype)中添加结构名称,返回数据类型之前

c - 如何使用 libcurl 作为服务器?

javascript - 类与原型(prototype) Array.isArray

c++ - 打印引用类的指针地址

C - 使用 FFmpeg 转码为 UDP?

c++ - 如何将两个负数数组合并为一个数组?

arrays - 在 2D MATLAB 数组中的两点之间获取 1D 切片

c++ - 使用指向该结构的指针访问结构变量成员的地址

c - 使用指针访问二维数组值