int[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a;

其中我知道ptr是指向一个一维数组
此数组含有3个元素,但是这个一维数组是怎样的一个数组?

*ptr 是指针,指向含3个元素的数组。
int (*ptr)[3]=a; ptr 指向 a 始地址。
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; int (*ptr)[3]=a;
int i;
for (i=0;i<12;i++) printf("%d ", (*ptr)[i]); // 输出 1 2 3 4 5 6 7 8 9 10 11 12
printf("\n====\n");
for (i=0;i<4;i++) printf("%d ", *ptr[i]); // 输出 1 4 7 10
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-20
我想知道你给出上面那二维数组有什么用?下面定义的这个指针是指向a所指的地址吧!线性的?
相似回答