对于二维数组int a[2][3]来说,a和&a[0][0]一样吗?都表示数组首地址吗?
&a[0][0]也就是a[0]指的是第一行第一个元素的地址,而a指的是第一行的地址,也就是行指针!如果要表示数组首地址的话两个都可以吗?
程序代码:#include <stdio.h>
int main(int argc,char*argv[])
{
char test[2][3]={'a','b','c','1','2','\0'};
int size1,size2,size3;
size1=sizeof test;
size2=sizeof test[0][0];
size3=sizeof &test[0][0];
printf( "test=%s,sizeof test=%d\n",test,size1);
printf( "test[0][0]=%c,sizeof test[0][0]=%d\n",test[0][0],size2);
printf( "&test[0][0]=%s,sizeof &test[0][0]=%d\n",&test[0][0],size3);
return 0;
}测试结果如下: