这个出现在C++prime第四版第124页,刚看没理解

#include<iostream>
using namespace std;
int main()
{
int ia[3][4]={{0,1,2,3},{4,5,6,7},{8,9,10,11}};
typedef int int_array[4];

for(int_array *p=ia;p!=ia+3;++p)
for(int *q=*p;q!=*p+4;++q)
cout<<*q<<endl;
}

typedef int int_array[4];
就是定义了一种类型
该类型是包含4个int元素的数组
之后你可以这样使用
int_array arr = {1, 2, 3, 4};
和arr[4] = {1, 2, 3, 4};等价

那么int_array* p就是一个指针了, 指针指向包含4个int元素的数组 与 int(*p)[4] 等价 所以可以用来遍历 ia[3][4]