#include <iostream>
#include <bitset>
using namespace std;
int main()
{
int ia[3][4]={0,1,2,3,4,5,6};
//typedef int int_array[4];
//int_array *ip=ia;
//for(int_array *p=ia;p!=ia+3;++p)
for(int (*ip) [4]=ia;ip!=ia+3;++ip)
for(int *q=*ip;q!=*ip+4;q++) //注意是int *q=*ip,而不是int *q=ip
cout<<*q<<endl;
return 0;
}
对ip进行解引用获得一个有4个int型元素的数组,通常,使用这个数组时,系统会自动将它转换为指向该数组第一个元素的指针。而ip=&ia[2]则可以理解为该过程的逆过程。因为ia[2]是指向ia[2]数组第一个元素的指针,若对它进行&操作则获得指向一个数组的指针。