C++之指针指向二维数组

一维指针通经常使用指针表示,其指向的地址是数组第一元素所在的内存地址,例如以下

int ary[4][5];
int(*aryp)[5] = ary;

那么ary[4]相当于int(*aryp)。下面理解如此。但參数传递须要知道实參所在
的一维个数,所以传递的时候应该传递多一个參数,子数组的引用能够理解
为(*p)。那么取元素就是(*p)[i]。例如以下

void printVal(int(*aryp)[5],int irowCount){
    for (int(*p)[5] = aryp; p != aryp + irowCount;p++)
    {
        for (size_t i = 0; i < 5; i++)
        {
            cout << (*p)[i] << endl;
        }
    }
}

缺点就是:传递的时候还须要传递1维数组的个数。但扩展性强。
相同三维数组能够使用指向指针的指针的数组。

通常非常少用。

posted @ 2016-04-07 11:29  mengfanrong  阅读(1409)  评论(0编辑  收藏  举报