读书人

这段输出多维数组的代码 不理解解决思

发布时间: 2012-09-28 00:03:35 作者: rapoo

这段输出多维数组的代码 不理解

C/C++ code
#include <iostream>using namespace std;int main(){    int ia[3][4]={        {1,2,3,4},        {2,3,4,5},        {3,4,5,6}    };    int (*p)[4];    for(p = ia; p != ia+3; ++p){        for(int *q = *p; q != *p + 4; ++q ){            cout << *q << endl;        }    }    return 0;}

我不理解 int (*p)[4]; 这一句指的是什么 书上说的多维数组是数组的数组我是理解的 还有不理解这两个for 这是c++ primer 4.36的习题





[解决办法]
int (*p)[4]
这是一个指针的数组。。也就是说这个数组里面装了4个int类型的指针,两个for是数组输出的。可以看看多维数组在内存中的分布就明白了。。。
[解决办法]
C/C++ code
int (*p)[4];//p是指向一个含有四个元素的一位数组的指针    for(p = ia; p != ia+3; ++p){//p指向ia的第0,1,2行,一行一行的遍历        for(int *q = *p; q != *p + 4; ++q ){//q开始指向q指向的元素,也就是二维数组的第一 个,之后q指向每一行的第0,1,2,3个元素            cout << *q << endl;        } 

读书人网 >C++

热点推荐