多维数组指针a和*a值相等,怎么解释?


   
  int v[2][5]={{1,2,3,4,5},{11,12,13,14,15}};
  
int (*a)[5]=v;

printf("%p,%p\n",a,a+1);
printf("%p,%p\n",*a,*(a+1));

请输入图片描述

a是指向二维数组的首地址,*a不就是指向首地址位置的存储内容吗?那么就应该是1.
这种理解和程序结果不一致。请问哪里出错了?

c 编程语言

夜王--冥王 10 years, 5 months ago

a与*a类型不同但存储空间是重叠在一起的。

Augeas answered 10 years, 5 months ago

Your Answer