首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-09-28 
这段输出多维数组的代码 不理解C/C++ code#include iostreamusing namespace stdint main(){int ia[3][

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

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;        } 

热点排行