使用指针进行矩阵打印

时间:2013-05-26 21:02:12

标签: c++ function pointers matrix

我遇到了这个问题,我真的需要一些帮助。我有一个功能 void f(int * a,int m,int n),它应该使用指针打印所有元素。 我试过了

for(i = 0; i < m; ++i)
        for(j = 0; j < n; ++j)
            cout << *((a+i)+j);

但它不会打印正确的元素。请帮我。

在main函数中我声明了矩阵然后我读了元素。

int col, rand, i, j;
    int a[100][100];
    cout << " col = ";
    cin >> col;
    cout << " rand = ";
    cin >> rand;

    for(i = 0; i < rand; ++i)
        for(j = 0; j < col; ++j)
    {
        cout << "a[" << i << "]" << "[" << j << "] = ";
        cin >> *(*(a+i)+j);
    }

当我尝试从主函数打印元素时,一切都没问题。

for(i = 0; i < rand; ++i)
        for(j = 0; j < col; ++j)
            cout << *(*(a+i)+j);

f(*a, col, rand); // function calling in the main function

1 个答案:

答案 0 :(得分:2)

尝试

cout << *(a+i*(p+1)+j);

但我认为以下内容也有效。 (mnrp之间的关系需要澄清。

for(i = 0; i <= r; ++i)
    for(j = 0; j <= p; ++j)
        cout << *a++;